Для простоты есть представление модели (MyModelView), которое содержит свойство Scheduler, в котором есть таймер (Scheduler).Таймер используется для проверки текущего времени и, если они совпадают, сигнализирует о «совпадении событий», о котором каким-либо образом должен быть уведомлен вид модели.Теперь MyModelView знает о планировщике, но не наоборот.
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 'может отображаться только в левой части + = или - = (кроме случаев использования внутри типа)
Как мне вызвать событие, на которое MyModelView может подписаться?Или это достигается с помощью RelayCommanding?