【发布时间】:2014-07-03 06:34:18
【问题描述】:
我有一个使用响应式扩展的 WPF 应用程序,我正在尝试订阅按钮点击。
var click = Observable.FromEvent<RoutedEventHandler,RoutedEventArgs>(h => btn.Click += h,h=> btn.Click -= h);
click.Window(n).Subscribe(window =>
{
});
根据我找到的一些教程,这段代码似乎没问题,但它失败了
Cannot bind to the target method because its signature or security transparency is not compatible with that of the delegate type.
我还发现这样的东西应该可以工作
var click = Observable.FromEvent(btn, "Click");
但这不会被编译。
【问题讨论】:
-
您是否考虑过使用 MVVM 并将您的按钮绑定到
Command? (然后使用 Rx 订阅Command的执行?) -
尝试使用 RxUI 来弥补与 rx 的差距。这种编码方式违反了最佳实践,并且会很快导致无法维护的代码。
标签: c# wpf system.reactive