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
Post a Comment