我以前从未使用过mvvm,所以我可能遗漏了一些显而易见的东西。当我创建一个新的全景应用程序时,已经有一个viewmodel文件夹包含itemviewmodel和mainviewmodel。
我以为“mainviewmodel.cs”是组织全景图的文件。但是,在mainviewmodel中,它有这样一行:
public MainViewModel()
{
this.Items = new ObservableCollection<ItemViewModel>();
}
itemViewModel与全景图没有交互。它们是这样实例化的:
this.Items.Add(new ItemViewModel()
{
LineOne = "first line",
LineTwo = "second line",
LineThree = "third line"
});
为什么itemViewModel不只是一个“模型”?它实现了inotifypropertychanged,但目的是什么?我本以为mainviewmodel中的observateCollection足以通知任何更改,因为demonstrated here
最佳答案
当从列表中添加或删除项时,ObservableCollection
将发出通知,但如果希望在这些属性更改时发出通知,则需要itemViewModel上的INotifyPropertyChanged
。