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