我试图学习MVVM,但我遇到了一些麻烦。我新来xaml和c#。wpf应用程序mvvm如何正确构建
我到目前为止有:
一个
person
类,定义一个Person对象:姓名,年龄等信息一个模型类
people
,拥有私人链表(名单人),其中还包含方法如get
,remove
,add
并做一些计算viewmodel类,做投在代码之后的xaml和模型之间进行/解析/转换。
代码文件
mainWindow.xaml.cs
后面的xaml,它监听按钮点击等,并调用viewModel类中的方法,并执行一些简单的绑定,如total.Content = objModelView.getTotal()
。
我没有使用INotifyPropertyChanged
ObservableCollection
,仍然试图环绕它我的头。虽然我的程序做了我想要的,但我不确定如何更好地构建它。
基本上我有2个主要问题:
- 我在网上看到的例子,人们店/发起视图模型的项目清单,我不应该保持模型的列表,而不是,这应该是所有的数据存储的权利?
- 比方说,我假设将所有项目(在模型类的列表中)显示在dataGrid上。现在在我的程序中:mainWindow.xaml.cs将检测按钮点击,然后它要求viewModel将其存储在模型中,如果没有错误,那么xaml后面的代码将会执行
people_dataGrid.Items.Add(new person { name = newName, age = newAge, address = newAdd });
这是不好的做法吗?不知道如何在这里使用ObservableCollection,它可以以某种方式检测我的模型类的列表中的更改,然后删除并添加行到数据网格?
我一直在读了整整一天,但我在这里打,希望我能得到一些方向
您需要使用INPC和ObservableCollection,否则它不是MVVM。 MVVM应该在模型中完成所有的操作,INPC/INCC是View如何知道数据已经改变,并且屏幕需要更新。这听起来像你实际上正在编写一个MVP应用程序。 – Aron