Чи це можливо, точніше як це відбуваєтьсяможна використовувати RX.Net для прослуховування кількох та різних різновидів елементів керування (WinForms) ".TextChanged / .RowsChanged / .SelectionChanged подій і кожного разу, коли одна умова заповнена (ControlA.Text isn" t порожній, ControlB.RowsCount> 0 і т.д. ) дозволити цю кнопку DoSomething.
Я запитую, тому що зараз ми маємо тривалий часякщо / then statement в кожному з цих подій обробники та їх підтримка, якщо зміна стану, через дубльований код, є досить схильною до помилок і тому, якщо можливо, я думаю, було б приємно взяти потік подій і поставити умов в одному місці.
Хто-небудь це зробив?
Відповіді:
0 для відповіді № 1Ви можете використовувати Observable.FromEventPattern у поєднанні з приєднуваними шаблонами, з Observable. Коли, Observable.And і Observable.Then, створювати observables, які будуть запускати в залежності від різних умов, таких як комбінації подій. Наприклад, розгляньте мою відповідь тут: Реактивні розширення для .NET (Rx): вживати заходів після завершення всіх подій
0 для відповіді № 2
Ви повинні мати можливість використовувати .FromEventPattern()
щоб створити спостережувані для кожного з цих подій, а потім використовувати CombineLatest()
зробити вашу логіку поточним загальним станом і визначити, чи потрібно вмикати вашу кнопку в одному місці.