Я пытаюсь подготовиться к тому, что я был оспариваемым с вопросом:
"Почему наклон мы просто реализуем модель презентации в коде позади?"
На самом деле я работал над проектом, где мы использовали Модель Презентации, которая была реализована в коде позади. Это работало довольно хорошо, мы даже смогли выполнить модульные тесты на нем. Да у Вас есть зависимость от WPF в Ваших модульных тестах..., но он действительно работает!
Что затем, основные недостатки использования кода позади?
Я действительно предпочитаю идею независимого ViewModel (MVVM), но в данный момент я не считаю возможным выравнивать по ширине его клиентам.
Вы ответили на первую часть вашего вопроса, чтобы загрузить приложение WPF во время тестирования подразделения. Другой является портативность, вы хотите, чтобы вы могли прикрепить реализованные реализации разных представлений к той же модели презентации. (Слабом, я знаю, но все, что у вас есть)
Также оселенение набора навыков, только разработчики, которые знают, что XAML будут участвовать в фактическом CREARSETION. Позволяя вам использовать Exisitng в таланте дома, который не знает WPF.
Проверьте эти два видео, чтобы получить некоторую идею. Оба видеоролики показывают разработку приложения, начиная со всего в коде позади, а затем рефакторируют шаблон MVVM.
также см. Этот вопрос для более Ссылки: MVVM: Учебник от начала до конца?
Прямым ответом является принцип разделения проблем. Конечно, кто-то может возразить, что поместив модель представления в код-заглушку, он отделен от вида (XAML), но я с этим не согласен. Сзади кода можно "увидеть" все внутренние детали вида, потому что это - вид. И xaml, и код за ним скомпилированы в один класс, чтобы стать View. Они вовсе не являются отдельными.
Есть много примеров, где нужно зайти в код-заглушку, чтобы сделать вещи, связанные с View, например, подключить взаимодействия между элементами управления, которые просто нельзя указать в Xaml. Как только вы это сделаете, логика представления теперь будет перемешана с логикой представления.
Концепция ViewModel довольно мощная. ViewModels могут "разговаривать" друг с другом без того, чтобы ViewModels "разговаривали" друг с другом, или даже без того, чтобы ViewModels "знали" что-нибудь о представлениях.