Я покажу вам особенно полезное видео Джейсона Долингера.
Исходя из мира WinForms, реализация любого шаблона стиля MVX казалась более трудной, чем она того стоила, но после работы с WPF в течение нескольких лет я могу честно сказать, что не стал бы рассматривать что-то меньшее. Вся парадигма поддерживается "из коробки".
Прежде всего, ключевым преимуществом является возможность истинного разделения между view
и model
. В реальном выражении это означает, что если / когда ваша модель должна измениться, это может произойти без необходимости в представлении, и наоборот.
Во-вторых, хотя ваш model
может содержать все данные, которые вам могут понадобиться в вашем view
, вы можете абстрагировать эти данные таким образом, чтобы ваш model
не поддерживал. Например, скажем, ваша модель содержит свойство date. В модели он может существовать исключительно как DateTime
объект, но ваше представление может захотеть представить его совершенно по-другому. Без viewmodel
вам придется либо дублировать свойство в model
для поддержки представления, либо изменить свойство, которое может серьезно запутать «модель».
Вы также можете использовать viewmodel
для объединения частей вашей модели, которые существуют в отдельных классах / библиотеках, чтобы упростить интерфейс для работы с view
. очень маловероятно, что вы захотите работать с данными в вашем коде так же, как пользователь захочет или захочет, чтобы эти данные были ему представлены.
Кроме того, вы получаете поддержку автоматической двусторонней привязки данных между view
и viewmodel
.
На самом деле есть целая куча дополнительных вещей, о которых я мог бы стучать, но Джейсон сказал, что это намного лучше, чем я мог, поэтому мой совет - смотреть видео. После нескольких дней такой работы вы будете удивляться, как раньше обходились без него.
Удачи.