首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ReactiveCommand canexecute

如何使用ReactiveCommand canexecute
EN

Stack Overflow用户
提问于 2014-06-02 09:35:19
回答 1查看 5.3K关注 0票数 1

我是WPF的新手,使用reactiveUI实现应用程序。我有一个按钮并为它添加了命令处理程序。只在canExecute为真时才调用该方法。

在视图模型中,我已经定义了它。

代码语言:javascript
复制
public bool canExecute 
{
  get { return _canExecute;}
  set { _canExecute = value;}
}

Bind()
{
 AddRecord = new ReactiveCommand(_canExecute);

    AddRecord .Subscribe(x => 
    {
       AddR()
}
}
void AddR()
{
}

但这不管用。如何将其转换为System.IObservable?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 21:31:05

正如@jomtois所提到的,您需要修复CanExecute声明:

代码语言:javascript
复制
bool canExecute;
public bool CanExecute {
    get { return canExecute; }
    set { this.RaiseAndSetIfChanged(ref canExecute, value); }
}

然后,你可以写:

代码语言:javascript
复制
AddRecord = new ReactiveCommand(this.WhenAnyValue(x => x.CanExecute));

为什么要这么努力呢?这使得当CanExecute更改时,ReactiveCommand会自动启用/禁用。但是,这个设计是非常必要的,我不会创建CanExecute布尔值,我会考虑如何组合与ViewModel相关的具有语义意义的属性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23991420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档