MVVM检索模型或视图模型的数据?(mvvm RETRIEVE data in model or v

2019-09-03 05:05发布

我学习MVVM 。 我知道模型是关于我的数据概念。 这是我的情景。

database table definition
create table people (SSN varchar(9),first_name varchar(40),last_name varchar(40))

在我看来PeopleV.xaml我定义了一个DataGrid有3列: SSNFirstNameLastName

在我的模型类PeopleM我露出3个属性: SSNFirstNameLastName

在我的视图模型类PeopleVM我定义:

PersonInfo = new ObservableCollection<PeopleM>();

现在我需要执行select * from people where SSN >= 'xxxxxxxxx' ,并把数据转换成DataTable

我的问题是,我应该这样做(定义DataTable ,并用数据填充),在模型PeopleM类或视图模型PeopleVM类?

谢谢。

Answer 1:

模型应该是愚蠢的数据对象只存在保存数据,所以我不会添加任何种类的该层的数据访问。

的ViewModels是为了视图模型,并且通常包括装载在查看使用正确的数据模型,但他们不一定必须包含数据访问代码本身。

在大多数情况下,我觉得最简单的,如果我把我的数据访问是另一层共有,并具有视图模型与数据访问层交互获取数据。

例如,我的视图模型可能有一个SearchCommand ,当点击会做这样的事情:

void Search(string ssn)
{
    PeopleCollection = PeopleRepository.GetPeopleBySsn(ssn);
}

有数据访问的单独的层可以更容易地重用数据访问组件,使应用程序更易于维护,更新和测试。



文章来源: mvvm RETRIEVE data in model or viewmodel?
标签: wpf c#-4.0 mvvm