使用ReactiveCommand

时间:2014-05-29 08:15:18

标签: wpf command reactiveui

我是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()
{
}

1 个答案:

答案 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