@den_labs

Как программно вызвать событие, используя Rx?

Всем привет.

Когда мы работает с событиями напрямую, всё просто
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 не ясно)
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы