【问题标题】:Trigger to disable and enable button触发禁用和启用按钮
【发布时间】:2013-04-29 09:58:34
【问题描述】:
我在 WPF 数据网格中有一个项目列表。作为来源,我使用 ObservableCollection。其中一列也是复选框绑定到集合的 bool 属性。在同一个窗口中,在网格之外,我还有一个按钮。如果没有选中复选框的记录,我希望禁用该按钮 = 所有项目的 bool 属性都设置为 false。
我认为在代码隐藏中执行此操作不会有任何问题,但我正在尝试使用样式、触发器等以更多 wpf 方式执行此操作。但我不知道如何执行此操作。
【问题讨论】:
标签:
wpf
button
triggers
styles
【解决方案1】:
我建议使用 MVVM 方法,该方法涉及创建一个 Command,它是与 Button 的数据绑定。如果您还没有使用 MVVM 框架,那么有几个。
在 Prism 中(一种可能性)DelegateCommand 有一个您可以实现的 CanExecute 委托。然后,此CanExecute 方法将评估您的ObservableCollection 项目并决定是否可以执行(启用)或不(禁用)Command。如果此方法返回 false,按钮将被禁用。
所有其他 MVVM 框架都将具有类似的 Command 构造。
Prism 文档中有关于此活动和其他 MVVM 相关活动的大量文档。可以在here 找到特定于命令的文档和示例。