从Child ViewModels接收通知

时间:2011-09-08 07:42:51

标签: windows-phone-7 mvvm-light

我可能会遗漏一些简单的东西,所以请耐心等待。 我有一个包含以下内容的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则会发生。这样做是“正确”的方法,还是有办法让视图使用第一种方法检测通知?

1 个答案:

答案 0 :(得分:1)

将绑定更改为{Binding PersonViewModel.PersonCollection}

您的包装PersonCollection属性没有更改通知,因此视图不知道该属性已更改(当然无法知道它最初来自PersonViewModel以便进行更改来自 it )的通知