5.1 ICommand

1. CanExecute实现

只是将命令绑定到特定控件是不会触发CanExecute方法执行,该方法只是在实例化命令的时候才使用,其余如果需要触发该事件,只能通过后台代码组合触发,如更新一个后台类字段,该字段更新触发是否执行的判定。方法有两种:

  1. 执行调用触发事件方法
  2. 观察某个值改变

1.1 执行调用触发事件方法

执行该方法后会Prism会触发CanExecute方法执行,并判定该方法是否可用。

ExecuteDelegateCommand.RaiseCanExecuteChanged();

1.2 观察某个变量的值

执行RaiseCanExecuteChanged有一个问题是每次执行后都需要去主动查询是否可行,通过ObservesProperty方法我们可以让Command自动查询命令是否可行。

DelegateCommandObservesProperty = new DelegateCommand(Execute, CanExecute).ObservesProperty(() => IsEnabled)

带参数情况:

ExecuteGenericDelegateCommand = new DelegateCommand<string>(ExecuteGeneric).ObservesCanExecute((vm) => IsEnabled);
posted @ 2020-11-01 23:18  饮冰少年  阅读(136)  评论(0编辑  收藏  举报