1
使用命令非常方便,因为当命令无法执行时,WPF会自动禁用命令源(通常为按钮)。基于WPF命令/命令绑定禁用控件
很明显,该功能不适用于不是命令源的控件,例如ListBox
。
对非命令源控件启用此功能的最佳方法是什么?我认为一对夫妇的解决方案的:
- 包裹
ListBox
与Button
和更改按钮的ControlTemplate
所以不存在铬。 - 创建一个无形的
Button
和ListBox
的IsEnabled
属性绑定到的Button
- 的
IsEnabled
属性创建的ListBox
后代实现ICommandSource
。
有没有更优雅的方式?
感谢您的回答。 CanExecute方法来自哪里? – 2009-09-15 17:50:31
我指的是WPF使用ICommand.CanExecute方法(http://msdn.microsoft.com/zh-cn/library/system.windows.input.icommand.canexecute.aspx)来确定命令可以执行或不执行。 – 2009-09-15 18:04:42
明白了。那么谁会打电话给ICommand.CanExecute。如果该命令附加到按钮上,WPF将执行该任务(我的要点#2)。否则,这将如何工作? – 2009-09-15 22:48:20