我以前从未使用过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

07-26 05:09