我正在製作一個WPF項目並試圖堅持使用MVVM模式。它接近20 UserControl
s,每個約10控件我想能夠改變屬性。對於每一個,我需要能夠更改Visibility
和IsEnabled
(框架元素屬性),然後更改內容/文本。每個控件至少有3個屬性。在所有UserControl
s,這使得600屬性...MVVM太多屬性
我玩弄了ControlProperties
類的想法,並讓每個控件綁定到適當的實例的成員變量/屬性。 (例如)
//Code-behind
public class ControlProperties
{
private bool m_isEnabled;
public property IsEnabled
{
get { return m_isEnabled; }
set { m_isEnabled = value; notifyPropertyChanged("IsEnabled"); }
}
ControlProperties() { m_isEnabled = false; }
}
public ControlProperties controlOne;
//XAML
<Button IsEnabled={Binding controlOne.IsEnabled}/>
有沒有辦法來每個控件的屬性2+結合成東西比使用上述類的可重用性/更容易實現,其他的? (每個控件需要它自己的「實例」,它們沒有共享相同的值)上述方法的一個缺點是每個控件都必須單獨綁定想要的屬性。我必須首先...但仍然。
如果我遺漏任何東西或對某些事物不清楚,請提問。
從你XAML的例子是你的datacontext controlProperties? 如果是這樣,乍一看,我會建議反對它 –
'Button'所在的'UserControl'將其'DataContext'設置爲我的ViewModel。 –
不確切知道控件的含義。我從來沒有使用過CustomControls,只有Controls;如果您沒有特定的XAML控件來綁定這兩個屬性,我將顯式綁定所有內容 如果兩個待綁定的屬性可以封裝在「通用」控件中,那麼該控件就不需要穿越障礙 –