我是WPF尝试使用ReactiveUI的新手,我之前使用过ICommand
/ DelegateCommand
,但现在我想使用ReactiveCommand
我想做的事情非常简单。单击视图中的按钮,然后在视图模型中执行应用方法。 我已经实现如下,但我收到错误“无法将lambda表达式转换为类型system.Iobserver,因为它不是委托类型”
private ReactiveCommand _applyCommand;
public ICommand ApplyCommand
{
get { return _applyCommand; }
}
void Bind()
{
_applyCommand = new ReactiveCommand();
_applyCommand.Subscribe(_ =>
{
Apply();
});
}
void Apply()
{
}
答案 0 :(得分:2)
如果您使用ReactiveCommmand
方法而不仅仅是构建它们,我总是发现static Create(..)
更容易使用。
// This works just like Josh Smith’s RelayCommand
var cmd = ReactiveCommand.Create(x => true, x => Console.WriteLine(x));
第一个参数是应该启用Command的时候,总是在这种情况下,但更常见的是传入一个发出true或false的observable。第二个lambda是要调用的实际操作。你不必使用它,但它总是一个良好的第一次开始,直到你习惯了语法。
http://ReactiveUI.net有更多帮助,但我建议您阅读指南http://reactiveui.net/welcome/pdf