触发器禁用并启用按钮

问题描述:

我有一个WPF数据网格中的项目列表。作为源我使用ObservableCollection。其中一列也是复选框绑定到集合的布尔属性。在同一个窗口中,我还有一个按钮。我希望按钮被禁用,如果复选框没有记录checked =所有项目都将bool属性设置为false。触发器禁用并启用按钮

我认为这不会是在代码隐藏中做到这一点的任何问题,但我试图用更多wpf方式使用样式,触发器等。但我不知道如何做到这一点。

我会建议使用MVVM方法,其中涉及创建一个Command这是DataBound到Button。如果你还没有使用MVVM框架,那里有几个。

在棱镜(一种可能性)DelegateCommand有一个CanExecute委托你可以实现。然后这CanExecute方法将评估您的ObservableCollection项目,并决定Command是否可以执行(启用)或不(禁用)。如果此方法返回false,则该按钮将被禁用。

所有其他MVVM框架将具有类似的Command构造。

在Prism文档中有很多有关此和其他MVVM相关活动的文档。命令特定的文档和示例可以在here找到。