WPF MVVM: свойство Notify изменяет одно свойство каждый раз, когда изменяется другое свойство - PullRequest
1 голос
/ 20 февраля 2011

У меня есть класс ViewModelBase, в котором я определяю метод RaisePropertyChanged для интерфейса INotifyPropertyChanged. Большинство людей из MVVM достаточно знакомы с этим.

У меня также есть Validating ViewModel, который наследуется от ViewModelBase. Он реализует интерфейс и некоторые методы для проверки его свойств. Он имеет свойство IsValid, которое является только получателем, который проверяет наличие каких-либо нарушений правил. Однако, если бы я не хотел связываться с этим свойством в представлениях, его пришлось бы обновлять через некоторое время. Обычно это происходит при изменении какого-либо другого свойства или, по крайней мере, свойств, с которыми я проверяю. Одним из простых решений было бы просто уведомить IsValid внутри метода RaisePropertyChanged, но он определен в ViewModelBase, где IsValid не был определен.

У кого-нибудь из вас есть хорошее решение этой дилеммы?

1 Ответ

3 голосов
/ 20 февраля 2011

Если вы следуете стандартному шаблону обработки событий, ваш метод RaisePropertyChanged будет помечен как virtual (вероятно, это должен быть метод protected virtual), поэтому вы сможете переопределить этот метод в своей проверкепросмотреть модель, вызвать базовую реализацию, а затем вызвать событие PropertyChanged для свойства IsValid.

Я не совсем уверен, что вы делаете, но если это общая проверка, вы былучше использовать такие рамки, как DataAnnotations .

...