2016-10-27 3 views
-7

рассматривает ситуацию, когда только пользователь обновляет ViewModels/Models через пользовательский интерфейс, нет никакого внешнего доступа к данным отображенных.Почему ViewModel должен реализовывать INotifyPropertyChanged?

Почему ViewModel должен реализовывать INotifyPropertyChanged в этом случае?

Это имеет смысл только для меня, чтобы иметь ViewModel его реализацию, когда есть внешний доступ к данным, так что пользовательский интерфейс должен быть уведомлен как-то о внешних инициированных свойствах-изменениях и настройках Mode=TwoWay/Mode=OneWay.
Большинство реализаций образца MVVM я видел никогда не подписаться ничегоViewModelsPropertyChangedEventHandler, но все-таки реализовать его, только потому, что это должно быть сделано, так как это MVVM.

+2

Рассмотрим пример, когда два текстовых поля связаны с одним и тем же свойством. Когда textbox1 изменен, textbox2 должен синхронизироваться с ним. –

+2

Вам не нужно ничего подписываться на viewmodels PropertyChangedEventHandler, это делается с помощью привязок, которые будут выполнять подписку. –

+0

Я думаю, если ваше приложение только вводит данные, то, возможно. Но это довольно скучное приложение. У вас нет проверки данных? Набор никогда не будет отклонять вход? – Paparazzi

ответ

1

Если пользователь меняет один элемент в представлении, он может воздействовать на несколько элементов в режиме просмотра или может влиять на состояние одного элемента в модели просмотра, что, в свою очередь, влияет на представление нескольких элементов в представлении.

Мне нужно было задать вопрос на его голову и спросить, учитывая приведенные выше утверждения, почему бы вам не реализовать INotifyPropertyChanged? Это едва ли тяжелые накладные расходы.

Смежные вопросы