问题描述
我正在构建一个应用程序,该应用程序在MainWindow视图中具有多个选项卡,每个选项卡包含几个DataGrid和不同的数据位。我整周都在研究如何将DataContext设置为多个表/对象/查询。我似乎可以从几个不同的来源找到唯一的答案,就是像这样创建一个viewmodel容器:
class VMContainer
{
public viewmodel1 VM1 {get; set;}
public viewmodel2 VM2 {get; set;}
}
但是,我找不到任何能进一步解释其作用的东西。从我的角度来看,似乎从来没有出现过对数据的呼吁。更进一步,我无法理解如何创建将我需要的所有数据集返回到一个对象的调用。任何人都可以解释这是如何工作的,或者可以引导我进入一篇文章,该文章解释将多组数据作为视图的数据上下文吗?
编辑:如何返回数据集的数据集?
谢谢。
解决方法
使用选项卡控件,通常您将为每个选项卡的内容看到一个单独的视图,并且每个视图都将具有一个随附的视图模型。
视图模型通过数据绑定为视图提供需要显示的数据/属性。
单个视图模型可以提供许多不同的数据集。当您提到数据集时,很有可能在视图模型中将其表示为ObservableCollection<T>
属性。
这是使用实现INotifyPropertyChanged接口的MVVM框架提供的其中一个属性的简单示例。
private ObservableCollection<MyDataType> myDataSet1;
public ObservableCollection<MyDataType> MyDataSet1
{
get => myDataSet1;
set => SetProperty(ref myDataSet1,value);
}
视图模型可以为视图提供许多这些属性。
实例化视图模型时,您将具有执行数据访问并从数据库中获取数据的代码,并且将通过属性公开它,以便视图可以将数据绑定到它们。