我可能会遗漏一些简单的东西,所以请耐心等待。 我有一个包含以下内容的ViewModel:
public ObservableCollection<Person> PersonCollection
{
get { return personCollection; }
set
{
if (personCollection != value)
{
personCollection = value;
RaisePropertyChanged("PersonCollection");
}
}
}
然后在另一个ViewModel中我有:
public ObservableCollection<Person> PersonCollection
{
get
{
PersonViewModel vm = (App.Current.Resources["Locator"] as ViewModelLocator).PersonViewModel;
return vm.PersonCollection;
}
}
public PersonViewModel PersonViewModel
{
get
{
return ((App.Current.Resources["Locator"] as ViewModelLocator).PersonViewModel)
}
}
在我的XAML中,如果我绑定到PersonCollection
,那么我的视图上不会发生更新,但如果我绑定到PersonViewModel.PersonCollection
则会发生。这样做是“正确”的方法,还是有办法让视图使用第一种方法检测通知?
答案 0 :(得分:1)
将绑定更改为{Binding PersonViewModel.PersonCollection}
您的包装PersonCollection
属性没有更改通知,因此视图不知道该属性已更改(当然无法知道它最初来自PersonViewModel
以便进行更改来自 it )的通知