Diskuze: Event

C# .NET .NET (C# a Visual Basic) Event American English version English version

Avatar
vodslon
Člen
Avatar
vodslon:

Pěkný den,

Mám takovou začátečnickou ohledně Eventů.

Bude to trochu zmatený, protože mi to nefunguje, co jsem myslel, že mi fungovat musí.

Můj zvyk...

Udělám si třeba

public class  MyEventArgs : EventArgs
   {
       public DateTime Now = DateTime.Now;
       public string second{get;set;}

       public MyEventArgs(string propertyName)
       {

       }


   }

potom ve své třídě, která z ničeho nedědí

public event EventHandler<My­EventArgs> PropertyChanged;

A tu potom při setu property můžu raisnout PropertyChanged(this, new MyEventArgs(Jme­noProperty)); (nekoukejte ted pls že tam nemám nikde ošetřené, jeslti není handler null)

pak mám třeba aplikaci trida t = new t(); t.event += new EventHandler<My­EventArgs>((sen­der,e) => něco)

a ted dojdu k dotazu, jak si udělat vlastní INotifyProper­tyChanged, přepsat interface tak, aby kromě jména property nosila třeba i datum ted přesně jak to mám výše, abych to neměl jakoby přes vlastní EventHandler, ale přes PropertyChange­EventHandler, moc děkuji za odpověd, pokud je to špatně sepsané rád opravím.

díky a pěkný den

 
Odpovědět 26.5.2015 9:16
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na vodslon
Jan Vargovský:

Udělat si vlastní interface, který definuje PropertyChanged se tvými argumenty. A pro zachování zpětné kompatibility se starým INPC bych z něj podědil.

Ty se díky atributu CallerMemberName stejně nemusíš nějak násilně vázat k těmto věcem a udělat si je posvojem.

 
Nahoru Odpovědět 26.5.2015 12:03
Avatar
vodslon
Člen
Avatar
Odpovídá na Jan Vargovský
vodslon:

Já to asi nebudu řešit, vlastně mi šlo o to, abych měl vlastní iterface a jak přepsat tu Inotify, ale ono to jde prostě vyřešit, že si napíšu vlastní třídu, co dělá uplně to stejné. Nevím, jak to udělat, ale vím jak to obejít a to asi stačí.

 
Nahoru Odpovědět 26.5.2015 14:51
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.