0

是否有可能,或者更准确地说,如何使用 RX.Net 来侦听许多和不同种类的(WinForms)控件的 .TextChanged/.RowsChanged/.SelectionChanged 事件以及满足一个条件时(ControlA.Text 是'不为空,ControlB.RowsCount > 0 等)启用那个 DoSomething 按钮。

我之所以问,是因为目前我们在每个事件的处理程序中都有一个冗长的 if/then 语句,如果条件发生变化,由于重复代码,很容易出错,这就是为什么,如果可能的话,我认为这会很好掌握事件流并将条件放在一个地方。

有没有人这样做过?

4

2 回答 2

0

您应该能够使用.FromEventPattern()为这些事件中的每一个创建可观察对象,然后使用CombineLatest()对当前整体状态执行逻辑并确定是否应在一个地方启用您的按钮。

于 2013-05-05T18:52:07.733 回答
0

您可以将 Observable.FromEventPattern 与 Join 模式、Observable.When、Observable.And 和 Observable.Then 结合使用,以创建将根据各种条件(如事件组合)触发的可观察对象。例如,在这里考虑我的回答:.NET (Rx) 的反应式扩展:在所有事件完成后采取行动

于 2013-05-09T13:27:49.470 回答