在我的应用程序中,我有一个 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 也可以通过其他一些方法进行更改
知道我可能会错过什么吗?