Я категорично не згоден з концепцією того, що Модель не повинна реалізовувати цю програму INotifyPropertyChanged
. Цей інтерфейс не призначений для інтерфейсу! Він просто повідомляє про зміну. Дійсно, WPF активно використовує це для виявлення змін, але це не означає, що це інтерфейс інтерфейсу. Я порівняв би це із наступним коментарем: " Шина - автомобільний аксесуар ". Звичайно, але велосипеди, автобуси тощо користуються цим. Підсумовуючи це, не сприймайте цей інтерфейс як предмет інтерфейсу.
Сказавши це, це не обов'язково означає, що я вважаю, що Модель повинна надавати сповіщення. Насправді, як правило, модель не повинна реалізовувати цей інтерфейс, якщо це не потрібно. У більшості випадків, коли дані про сервер не передаються клієнтській програмі, модель може бути несвіжою. Але якщо слухати дані фінансового ринку, то я не бачу, чому модель не може реалізувати інтерфейс. Як приклад, що робити, якщо у мене є логіка, що не користується інтерфейсом користувача, наприклад, послуга, що коли вона отримує ціну або пропозицію за задане значення, вона надсилає попередження (наприклад, електронною поштою) або розміщує замовлення? Це може бути можливим чистим рішенням.
Однак існують різні способи досягнення речей, але я завжди заперечував би за простоту і уникав зайвих надмірностей.
Що краще? Визначення подій колекції чи зміни властивості моделі перегляду та їх поширення до моделі чи перегляд власне оновлення моделі (через модель перегляду)?
Підсумок кожного разу, коли ви бачите, що хтось стверджує, що " ви не можете цього чи іншого зробити ", це знак, що вони не знають, про що говорять.
Це дійсно залежить від вашого випадку, і насправді MVVM - це рамка з безліччю питань, і я ще не бачу спільної реалізації MVVM в усьому світі.
Мені б хотілося, щоб у мене було більше часу для пояснення багатьох ароматів MVVM та деяких варіантів вирішення загальних проблем - в основному, це надано іншими розробниками, але, мабуть, мені доведеться це зробити в інший раз.