触发禁用和启用按钮

时间:2013-05-05 14:03:58

标签: wpf button triggers styles

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

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

1 个答案:

答案 0 :(得分:2)

我建议使用MVVM方法,该方法涉及创建一个Command,它是Button的DataBound。如果你还没有使用MVVM框架,那里有几个。

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

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

Prism文档中有关于此活动和其他MVVM相关活动的详细文档。可以找到特定于Command的文档和示例here