2013-04-25 30 views
0

在我看來,我有不同的控件。主要是Button s,TextBox es和ComboBox es。這些按鈕通過CommandBinding(ICommand)啓用/禁用,但其他控件必須「手動」啓用/禁用。我可以想到很多方法來實現這個目標:如何處理對非ICommand綁定控件的啓用/禁用支持?

向ViewModel添加一個bool屬性是一種方法,使用DataTriggers是另一種方法。 (或者,也許我可以直接綁定該屬性並使用IValueConverter。)

MVVM中是否存在某個特定的解決方案,我將忽略或遺漏?

+0

你在圍繞它跳舞,但我不認爲你在提及實現INotifyPropertyChanged並只是將視圖屬性綁定到你的ViewModel(MVVM)。 http://msdn.microsoft.com/en-us/library/ms229614.aspx你可以推出自己的或使用幾個好的MVVM框架之一。 http://stackoverflow.com/questions/8062436/inotifypropertychanged-in-wpf – kenny 2013-04-25 20:26:25

回答

2

是的,您可以將視圖模型上的公共布爾值屬性綁定到控件的IsEnabled屬性。不需要價值轉換器。

+0

我知道如何做到這一點,我已經在其他應用程序中做到了這一點。我只是問,因爲我不知道使用哪種方法/哪種方法最「MVVM-ish」。 – 2013-04-25 20:31:09

+0

綁定到返回布爾值的視圖模型的公共屬性是mvvm的方式。您甚至可以將IsEnabled綁定到您的命令使用的CanExecute函數。 devdigital是正確的 – 2013-04-25 20:38:19

+0

這就像你可以得到的MVVM一樣。它涉及視圖和視圖模型。您甚至可以將視圖模型中的調用委託給模型,或將視圖模型中的模型直接展示給視圖(取決於DRY和LoD原則的優先級)。這是所有信件覆蓋。 – devdigital 2013-04-25 20:38:51

相關問題