Всем привет.
Когда мы работает с событиями напрямую, всё просто
ListBox lb = new ListBox();
lb.SelectedValueChanged += LbOnSelectedValueChanged;
....
private void LbOnSelectedValueChanged(object sender, EventArgs eventArgs)
{
....
}
где LbOnSelectedValueChanged вызывается при выполнении события, а также можно вызвать напрямую.
А можно использовать Rx, где присутствует логика работы с событием
IObservable<EventArgs> selectedValueChanged = Observable.FromEventPattern<EventHandler, EventArgs>(
h => lb.SelectedValueChanged += h,
h => lb.SelectedValueChanged -= h).Select(x => x.EventArgs);
selectedValueChanged.Delay(TimeSpan.FromSeconds(10)).Where(ts =>
{
return IsCorrect();
}).Subscribe(x =>
{
.....
});
Вопрос, как вызвать данное событие (с заданной логикой) программно?
(т.е. как вытащить subscriber-а и вызвать OnNext для selectedValueChanged не ясно)