我有一个WPF窗口,可以显示不同的自定义视图。迄今为止,我能够使用我所学习的所有MVVM内容:)
现在我遇到了一个新的“问题”:在一个更大的视图中有10个相同视图的实体。这十个视图实体包含一组控件(文本框、组合框等),但都是一致的。
那么我该如何将这些视图绑定到ViewModel?
我考虑在“高级”ViewModel中有10个ViewModel实例,并将视图固定定义为VM实例作为数据上下文。
我的问题是->是否有更简单(或更方便)的方法来将许多(相同的)视图绑定到它们的ViewModels? 代码示例: 视图模型:
我困扰的是,我需要为十个视图编写十次这个逻辑吗?
更新:回答一些问题:我想展示一个视图10次(在我的例子中)。我通过继承UserControl来定义了自己的视图。所以我的vwPanel继承自UserControl。这10个vwPanels只是放置在Grid中的StackPanel内。
这不是关于显示数据的问题,正如你指出的那样,ListView或DataGrid是更好的起点。这是一个需要大量输入控件的特殊情况 :/
更新2:我希望能像定义ViewModels列表一样,将我的10个视图绑定到其中一个列表。但这行不通,对吧?至少我不知道如何在XAML中引用列表中的“特殊”实体...
现在我遇到了一个新的“问题”:在一个更大的视图中有10个相同视图的实体。这十个视图实体包含一组控件(文本框、组合框等),但都是一致的。
那么我该如何将这些视图绑定到ViewModel?
我考虑在“高级”ViewModel中有10个ViewModel实例,并将视图固定定义为VM实例作为数据上下文。
我的问题是->是否有更简单(或更方便)的方法来将许多(相同的)视图绑定到它们的ViewModels? 代码示例: 视图模型:
private PanelViewModel _panelViewModel1 = new PanelViewModel();
public PanelViewModel PanelVM1
{
get { return _panelViewModel1; }
}
视图示例:
<myControls:vwPanel HorizontalAlignment="Left" x:Name="vwPanel1"
VerticalAlignment="Top" DataContext="{Binding Path=PanelVM1}"/>
我困扰的是,我需要为十个视图编写十次这个逻辑吗?
更新:回答一些问题:我想展示一个视图10次(在我的例子中)。我通过继承UserControl来定义了自己的视图。所以我的vwPanel继承自UserControl。这10个vwPanels只是放置在Grid中的StackPanel内。
这不是关于显示数据的问题,正如你指出的那样,ListView或DataGrid是更好的起点。这是一个需要大量输入控件的特殊情况 :/
更新2:我希望能像定义ViewModels列表一样,将我的10个视图绑定到其中一个列表。但这行不通,对吧?至少我不知道如何在XAML中引用列表中的“特殊”实体...