Ich habe eine Benutzersteuerung, die ein Ereignis nach der Kommunikation mit einem Webdienst auslöst. Das übergeordnete Element behandelt dieses Ereignis, wenn es ausgelöst wird. Was ich dachte wäre der richtige Ansatz wäre, das Objekt aus dem Webservice an die Eltern übergeben als eventargs ???Wie übergebe ich Objekte in EventArgs
Wenn dies der richtige Weg ist, kann ich nicht die Anweisungen finden, wie dies zu tun ist. später, nachdem der Dienst kehrt biz Objekt
Usercontrol
public event EventHandler LoginCompleted;
dann:
if (this.LoginCompleted != null)
{
this.LoginCompleted(this, new EventArgs() //this is where I would attach/pass my biz object no?);
}
Eltern
ctrl_Login.LoginCompleted += ctrl_Login_LoginCompleted;
....snip....
void ctrl_Login_LoginCompleted(object sender, EventArgs e)
{
//get my object returned by login
}
Also meine Frage ist, was wäre die "genehmigte" Methode, um das Benutzerobjekt zurück zum Elternteil zu bekommen? Erstellen Sie eine Eigenschaftsklasse, auf die alles zugreifen kann, und legen Sie sie dort ab?
Das ist das Ticket! Lassen Sie mich implementieren und gleich zurückkommen. – GPGVM
würden Sie jemals wollen, dass die Eigenschaft alles andere als nur lesen. IE gibt es nie eine Situation, wo Sie es anders als über Konstruktor setzen möchten? – GPGVM
@ user1278561: Es gibt zwei mögliche Fälle: (1) Die Klasse, die das Ereignis auslöst und die Instanz erstellt, möchte diese Eigenschaft ändern. Das wird nicht passieren, da die Instanz nirgends gespeichert wird und direkt an den Handler übergeben wird. (2) Der Event-Handler möchte diese Eigenschaft ändern. Dies möchten Sie nicht tun, da andere Abonnenten des Ereignisses jetzt eine andere Instanz erhalten als die, die die aufsteigende Klasse bereitgestellt hat. –