在我的應用程序中,某些按鈕在設置爲在某個時間點處摺疊的面板中有一些按鈕,這些按鈕有一個使用"CanExecute"
方法的命令綁定。當面板不可見時,我想停止執行"CanExecute"
方法中的邏輯。 如果我看不到按鈕,我不需要花費資源來知道它是否可以執行。 我可以嘗試將該面板的可見性綁定到"CanExecute"
方法,但我希望爲每個按鈕提供一個解決方案,因此如果它們不可見不會浪費時間。WPF按鈕處於隱藏狀態,但「CanExecute」方法上升
謝謝!
在我的應用程序中,某些按鈕在設置爲在某個時間點處摺疊的面板中有一些按鈕,這些按鈕有一個使用"CanExecute"
方法的命令綁定。當面板不可見時,我想停止執行"CanExecute"
方法中的邏輯。 如果我看不到按鈕,我不需要花費資源來知道它是否可以執行。 我可以嘗試將該面板的可見性綁定到"CanExecute"
方法,但我希望爲每個按鈕提供一個解決方案,因此如果它們不可見不會浪費時間。WPF按鈕處於隱藏狀態,但「CanExecute」方法上升
謝謝!
我想你可以在按鈕不可見時刪除命令綁定。
- 註冊一個的CommandBinding: myUIelement.CommandBindings.Add(mycommand的);
- 取消註冊CommandBinding: myUIelement.CommandBindings.Remove(myCommand);
- 取消註冊所有CommandBindings:myUIelement.CommandBindings.Clear();
如何使用對象類型,如果它有參數
即
_someCommand = new RelayCommand(
p => someCommandExecute((someObject)p),
p => p is someObject);
或嘗試驗證值,如果它沒有參數
_someCommand = new RelayCommand(
p => someCommandExecute((someObject)p),
p => someObject != null);
我」我不確定你是否想要做這樣的事情,但是如果你可以發佈你的代碼樣本這將是有益的。
這也可以幫助你https://rachel53461.wordpress.com/2011/05/08/simplemvvmexample/
這是一個很好的workarround,但我不得不把它寫在代碼的屏幕或BaseButton類有類似的行爲 – Nacho
你可以刪除和通過設定的指令綁定的背後在XAML中使用樣式和觸發器。 – Clint