Я видел много разговоров об этом вопросе, но, возможно, я просто слишком много новичок, чтобы получить его. Если у меня есть наблюдаемая коллекция, которая представляет собой коллекцию «PersonNames», как в примере msdn (http: //msdn.microsoft.com/en-us/library/ms748365.aspx), я получаю обновления для моего представления, если добавлен или удален PersonName
и т. Д. Я хочу получить обновление для моего представления, когда я измените свойство в PersonName
. Как если бы я изменил имя. Я могу реализовать OnPropertyChanged
для каждого свойства и получить этот класс от INotifyPropertyChanged
и который, как представляется, называется как ожидается. Мой вопрос в том, как представление получает обновленные данные из ObservableCollection
, поскольку измененное свойство не вызывает никаких событий для ObservableCollection
. Это, наверное, что-то действительно простое, но почему я не могу найти пример, это меня удивляет. Может ли кто-нибудь пролить свет на это для меня или иметь какие-либо указания на примеры, которых я бы очень признателен. Мы имеем этот сценарий в нескольких местах в нашем текущем приложении WPF и боремся с его выяснением.ObservableCollection и Item PropertyChanged
«Как правило, код отвечает за отображение данных добавляет обработчик события к PropertyChanged
каждому объекту в данный момент отображается на экране.»
Может кто-нибудь, пожалуйста, дайте мне пример того, что это значит? Мой вид привязывается к моему ViewModel
, который имеет ObservableCollection
. Эта коллекция состоит из RowViewModel
, которая имеет свойства, которые поддерживают событие PropertiesChanged
. Но я не могу понять, как сделать само обновление коллекции, поэтому мое представление будет обновлено.
Спасибо. Я использую WPF и имею DataGrid, чей ItemsSource привязан к XAML к ObservableCollection. Итак, мне нужно добавить код где-нибудь в моем ViewModel, чтобы обрабатывать событие PropertyChanged, чтобы View View знал, чтобы обновить DataGrid? И тогда мне нужно удалить и добавить элемент в коллекцию, чтобы получить его в представлении, чтобы его обновить? Кажется, что счетчик интуитивно понятен (но это не значит, что это не так :) –
DataGrid делает это автоматически, если элементы в ObservableCollection реализуют INotifyPropertyChanged (или являются DependencyObjects). – Goblin