1

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

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

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

  • ListBox用 a包裹Button并更改ControlTemplate按钮的 ,以便没有镀铬。
  • 创建一个不可见的并将 的属性Button绑定到 的属性IsEnabledListBoxIsEnabledButton
  • 创建ListBox该 implements的后代ICommandSource

有没有更优雅的方式?

4

1 回答 1

4

您可以在代码隐藏(或视图模型)中创建一个 bool 属性,例如CanSelect或将您的属性CanEdit绑定到它。只需在相应命令的方法中设置这个新属性的值即可。IsEnabledListBoxCanExecute

于 2009-09-15T17:32:45.230 回答