Mam kontrolę użytkownika, która wywołuje zdarzenie po komunikowaniu się z usługą sieci Web. Rodzic obsługuje to zdarzenie po podniesieniu. Co byłoby dobrym podejściem byłoby przekazanie obiektu zwróconego z usługi sieci web rodzicowi jako zdarzenie?Jak przekazywać obiekty w EventArgs
Jeśli jest to właściwy sposób, nie mogę znaleźć instrukcji, jak to zrobić.
UserControl
public event EventHandler LoginCompleted;
potem po Object Zwraca biz:
if (this.LoginCompleted != null)
{
this.LoginCompleted(this, new EventArgs() //this is where I would attach/pass my biz object no?);
}
dominującej
ctrl_Login.LoginCompleted += ctrl_Login_LoginCompleted;
....snip....
void ctrl_Login_LoginCompleted(object sender, EventArgs e)
{
//get my object returned by login
}
Moje pytanie brzmi, jaka byłaby "zatwierdzona" metoda uzyskiwania obiektu użytkownika z powrotem do rodzica? Utwórz klasę właściwości, do której wszystko może uzyskać dostęp i umieścić ją?
To jest bilet !! Pozwól mi zaimplementować i od razu wrócić. – GPGVM
czy kiedykolwiek chciałbyś, aby nieruchomość była czymś innym niż tylko do odczytu. IE nie ma sytuacji, w której chciałbyś ustawić ją inaczej niż za pośrednictwem konstruktora? – GPGVM
@ user1278561: Istnieją dwa możliwe przypadki: (1) Klasa, która podnosi zdarzenie i tworzy instancję, chce zmienić tę właściwość. To się nie stanie, ponieważ instancja nie jest nigdzie zapisana, jest bezpośrednio przekazywana do obsługi. (2) Program obsługi zdarzeń chce zmienić tę właściwość. Nie chcesz tego robić, ponieważ inni subskrybenci wydarzenia otrzymają teraz inną instancję niż ta, którą podała klasa podnoszenia. –