Лично я считаю, что MVVM идет рука об руку с WPF. Когда я начал изучать WPF, это был кошмар ... это просто так отличается от Winforms, например. Но когда я узнал о MVVM и начал использовать его с WPF, все просто встало на свои места.
Это имеет смысл иметь класс (модель представления), который содержит все данных, что вам нужно для конкретного Window
или UserControl
(вида). Это была одна из моих самых больших проблем ... где я помещаю этот бит данных?
Еще одна проблема, с которой я столкнулся, заключалась в создании и понимании объектов и различных обработчиков, с которыми они связаны. С MVVM нам не нужно беспокоиться об этом ... мы можем просто использовать обычные свойства CLR, хотя и с вызовом статического PropertyChangedCallback
обработчика только для контроля входящих значений.
Единственная трудность, с которой я столкнулась с MVVM, - это немного о том, что «не использовал код позади» ... но однажды я обнаружил, что это скорее запрос, чем правило, тогда проблема в основном исчезла. Как только я узнал, что Attached Properties
может реализовать большую часть функций типа событий пользовательского интерфейса, которые обычно помещаются в код позади (например, MouseDown
события и т. Д.), То не использовать код позади стало намного проще.
Для меня это простой выбор ... если проект не будет небольшим, я всегда буду выбирать MVVM для использования с WPF.
Возможно, это будет лучше обслуживаться на сайте обмена стеками программистов. –
Независимо от того, что вы делаете, не пытайтесь заставить WPF архаичным способом winforms (делая все в коде позади). Вы потерпите неудачу. –
IMO полностью зависит от размера проекта. Насколько большой проект мы говорим? – Dom