Mvvm 如何避免绑定文本框详细信息时属性过多
我有一个带有22个文本框的mvvm应用程序。 在我的“普通”wpf应用程序中,我可以列出一个列表,然后更改所有框的设置,如下所示:Mvvm 如何避免绑定文本框详细信息时属性过多,mvvm,caliburn.micro,Mvvm,Caliburn.micro,我有一个带有22个文本框的mvvm应用程序。 在我的“普通”wpf应用程序中,我可以列出一个列表,然后更改所有框的设置,如下所示: Brush MyBrush = Brushes.LightGray; foreach (var a in AllBoxes) { a.Background = MyBrush; a.IsReadOnly = true; a.
Brush MyBrush = Brushes.LightGray;
foreach (var a in AllBoxes)
{
a.Background = MyBrush;
a.IsReadOnly = true;
a.IsTabStop = false;
}
因此,在mvvm中,我需要为每个文本框创建3个绑定,并创建如下属性:
private Brush _clr2;
public Brush Clr2
{
get { return _clr2; }
set
{
_clr2 = value;
NotifyOfPropertyChange(() => Clr2);
}
}
有没有一种更简单的方法可以做到这一点而不创建66个属性?您可以为一个文本框创建一个UserControl,其中包含所有绑定…与ViewModel关联
<StackPanel>
<TextBox .... />
</StackPanel>
然后,使用ViewModel的ObservableCollection并使用ItemControl创建ParentView:
并为ItemsControl中的项创建itemstemplate
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
您可以为一个文本框创建一个UserControl,该文本框具有所有绑定…与ViewModel关联
<StackPanel>
<TextBox .... />
</StackPanel>
然后,使用ViewModel的ObservableCollection并使用ItemControl创建ParentView:
并为ItemsControl中的项创建itemstemplate
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>