0

在我的应用程序中,我有一个 DelegateCommand 定义如下

public DelegateCommand SelectAll {
  get {
    return selectAll;
  }
}

selectAll = new DelegateCommand(ExceuteSelectAll, CanExceuteSelectAll);

private bool CanExceuteSelectAll() {
  foreach(var item in AllItemsSelected.ToList()) {
    if (item.HasSomething) {
      return true;
    }
  }
  return false;
}

public IList <ItemModel> AllItemsSelected {
  get => m_ItemsOnly;
  set {
    Set(ref m_ItemsOnly, value);
    SelectAll.RaiseCanExecuteChanged();
  }
}

这工作得很好,直到 List AllItemsSelected 为空为止。当我调试代码时,我仍然可以看到从 CanExceuteSelectAll 方法成功返回的错误,但按钮的可见性没有改变并且它是可见的。它仍然可以点击,但没有任何反应,甚至没有到达 ExceuteSelectAll 方法。

请注意,我只包含了一个委托命令,但 AllItemsSelected 也可以通过其他一些方法进行更改

知道我可能会错过什么吗?

4

0 回答 0