c# - WPF MVVM Event Subscription -


for simplicity have modelview (mymodelview) contains scheduler property has timer inside of (scheduler). timer used check against current time, , if match, signal 'event match' modelview should somehow notified of. mymodelview knows scheduler, not other way around.

public scheduler()     {         schedulecollection = new observablecollection<schedule>();          timespan ts = new timespan(30000);          _timer = new dispatchertimer();         _timer.interval = ts;         _timer.tick += new eventhandler(eventtimercheck_tick);         _timer.start();      } private void eventtimercheck_tick(object sender, eventargs e)      {         eventstolaunch = locatecurrentevents();          if (eventstolaunch.count > 0) { raisehasevents(); }     }  public void raisehasevents()     {        eventhandler handler = this.hasevents;         if (handler != null)         {             var e = new eventargs();             handler(this, e);         }     }  public event eventhandler hasevents; 

public mymodelview()    {         scheduler scheduler = new scheduler();         haveevents += scheduler.hasevents; <----*throws error below     }     internal event eventhandler haveevents; 
  • scheduler.hasevents' can appear on left hand side of += or -= (except when used within type)

how raise event mymodelview can subscribe to? or accomplished through relaycommanding ?

you trying add additional handlers event exposed mymodelview, not handle event (which not valid syntax).

you should doing following subscribe event:

public mymodelview() {     scheduler scheduler = new scheduler();     scheduler.hasevents += onhasevents;     // ... }  private void onhasevents(object sender, eventargs e) {     // todo: here } 

Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -