0

我认为对此有一个具体的答案。

如果我有一个命令绑定

private bool CanExecute(Object args){
  // Should this just be null checks?
  // Should it also contain logic? 
  // example:

  return this.SelectedObject != null;

  // or 

  return this.SelectedObject != null && this.SelectedObject.Status == 1;
}

private void Executed(Object args){

  //Or should logic be reserved for the Executed command

  if(this.SelectedObject.Status == 1)
     //Do stuff
  else
     //Don't do stuff
}

如果我们在执行的方法中进行额外的数据验证,那么拥有一个可以执行的方法似乎是多余的。

4

2 回答 2

2

我的看法是,某事是否会发生和是否应该发生是有区别的。

这方面的一个例子可以是保存按钮或其他东西。用户可能无权保存实体,因此该操作不会发生。

如果用户确实有权限,则可能不会填写所有必填字段,因此不应发生。

它在语义上。

于 2014-09-25T12:03:41.817 回答
2

如果你的命令的逻辑假设它不能被执行,当某些条件满足时,那么CanExecute必须检查这些条件。

否则,CanExecute必须返回 true。

无关紧要,条件的本质是什么,但您应该注意,长时间运行的检查可能会影响 UI 线程性能。

于 2014-09-25T12:05:27.943 回答