2013-05-08 5 views
3

Я разработал WPF-приложение. У меня есть mainwindow, которые наследуются от Window, tabcontrol и многих tabitems в этом tabcontrol, которые наследуются от UserControl. Каждый tabitem имеет свой собственный cs-файл, где я кодирую на C# всю бизнес-логику и XAML-файл, где выполняется разработка пользовательского интерфейса. У меня также есть SQL Server с базой данных, с которой я соединяюсь с LINQ.Что такое мой контроллер в моей заявке с шаблоном проектирования MVVM

Так что я должен написать о своем выборе того контроллера, который я использую в своем приложении. Вот где я запутался, так как я havent вручную запрограммировал контроллер, и я думал, что ViewModel будет вести себя как контроллер в моем случае. Это может быть правильно? Может ли ViewModel вести себя как контроллер?

+2

Это лучше подходит для обмена программами. Переполнение стека больше связано с конкретными проблемами программирования в коде. – scrappedcola

ответ

3

В простейшем случае, если ViewModel реализует логику «контроллера». Для больших приложений иногда я использую шаблон MVVMC, который использует отдельный класс контроллера. В блогосфере было много недавней поддержки использования MVVMC над MVVM.

http://skimp-blog.blogspot.com/2012/02/mvvm-is-dead-long-live-mvvmc.html http://trelford.com/blog/post/MVMMC-e28093-MVVM-grows-a-Controller.aspx

4

контроллера может посылать команды на связанном с ним зрение, чтобы изменить представление вида по модели (например, путем прокрутки документа). Он также может отправлять команды модели для обновления состояния модели (например, редактирования документа). Model_View_Controller

ViewModel является «модель», что означает зрения это абстракция зрения, который также служит в опосредовании между видом и моделью, которая является мишенью для привязки просмотра данных. Это можно рассматривать как специализированный аспект того, что будет контроллером (в шаблоне MVC), который действует как конвертер, который изменяет информацию о модели в представлении информации и передает команды из представления в модель. Модель представления предоставляет публичные свойства, команды и абстракции. Model_View_ViewModel

Введение MVVMC (MVC + MVVM) является в тех случаях Обязательное вы хотели бы водить много подобных пар View-ViewModel (варианты использования). Затем вы можете ввести контроллеры. Model_View_ViewModel_Controller

+0

+1 для описания случаев, когда вы можете выбрать MVVMC над vanilla MVVM – scotru

+0

view-model - это всего лишь модель, используемая для связывания данных между представлением и моделью. Что может сбить с толку, так это то, что шаблон MVVM встраивает модель представления в контроллер, а не сохраняет ее отдельно (MVVMC). –

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