我在WPF数据网格中有一个项目列表。作为源我使用ObservableCollection。其中一列也是复选框绑定到集合的bool属性。在同一个窗口中,我还有一个按钮。如果没有选中复选框的记录,我希望禁用该按钮=所有项目都将bool属性设置为false。
我认为在代码隐藏中这样做不会有任何问题,但我尝试使用样式,触发器等以更多的wpf方式进行。但我不知道如何做到这一点。
答案 0 :(得分:2)
我建议使用MVVM方法,该方法涉及创建一个Command
,它是Button
的DataBound。如果你还没有使用MVVM框架,那里有几个。
在Prism中(一种可能性)DelegateCommand
有一个CanExecute
委托,你可以实现。然后,此CanExecute
方法将评估您的ObservableCollection
项,并决定Command
是否可以执行(启用)或不执行(禁用)。如果此方法返回false,则该按钮将被禁用。
所有其他MVVM框架都将具有类似的Command
构造。
Prism文档中有关于此活动和其他MVVM相关活动的详细文档。可以找到特定于Command的文档和示例here。