Как уведомить все свойства модели представления изменилось - PullRequest
27 голосов
/ 06 августа 2010

В шаблоне MVVM как сообщить, что все свойства модели представления изменились? Я не хочу вызывать все события notifypropertychanged всех свойств.

У меня есть класс сущностей, и в модели представления я записал все открытые поля сущности как открытые свойства. Я хочу перепривязать новую сущность и просто написать одну строку кода, чтобы уведомить, что все свойства изменились?

Спасибо за вашу помощь.

Ответы [ 2 ]

49 голосов
/ 06 августа 2010

Просто вызовите событие PropertyChanged с пустой строкой в ​​качестве имени свойства:

OnPropertyChanged(String.Empty);
0 голосов
/ 06 августа 2010

Хорошо, что я понял из вашего вопроса, это ..

View <> ViewModel <> Entity (with a bunch of properties)

Представление связано с ViewModel, которая делегирует Entity.Теперь вы хотите заменить поддерживающую сущность и подать сигнал на обновление представления для обновления до более новой сущности.

Я бы предложил реализовать индексатор в ViewModel, который принимает строку (название резервного имущества).ViewModel может использоваться в качестве кеша, если требуется, делегируя поддерживающему объекту только при промахе.

При замене объекта viewModel очищает свой кэш и запускает NotifyPropertyChanged (в наборе индексатора) со строкой String.Пустой или ноль.Как я узнал сегодня, указывает, что все свойства изменились .

Таким образом, вы не создаете n делегирующих свойств в ViewModel.* Результат поиска Google показывает, что его пытались хотя бы один раз успешно.

...