基于WPF命令/命令绑定禁用控件

时间:2009-09-15 17:12:55

标签: wpf commandbinding

使用命令很方便,因为当命令无法执行时,WPF会自动禁用命令源(通常是按钮)。

显然,此功能不适用于非命令源的控件,例如ListBox

为非命令源控件启用此功能的最佳方法是什么。我想到了几个解决方案:

  • ListBox包裹Button并更改按钮的ControlTemplate,以便没有镀铬。
  • 创建一个不可见的Button并将IsEnabled的{​​{1}}属性绑定到ListBox
  • IsEnabled属性
  • 创建实现Button。{/ li>的ListBox后代

有更优雅的方式吗?

1 个答案:

答案 0 :(得分:4)

您可以在代码隐藏(或视图模型)中创建bool属性,例如CanSelectCanEdit,并将IsEnabled的{​​{1}}属性绑定到该属性。只需在相应命令的ListBox方法中设置此新属性的值。