WPF, MVVM, MasterDetailPage, Проектирование - PullRequest
1 голос
/ 16 января 2012

я пытаюсь идти своим путем в мире mvvm,

я не предъявляю никаких исков, только то, что я видел в http://blog.roboblob.com/tag/viewmodellocator/

мне очень нравится этот пост иэто работает очень хорошо.

Я пытаюсь создать представление основных данных, которое содержит 3 пользовательских элемента управления.один из них нужно изменить в зависимости от ввода пользователя (например, мастера)

, поэтому у меня есть что-то вроде

MasterDetailsView
 -> MenuView
 -> FirstPageView
 -> SliderView

по посту, который я прочитал, каждое представление создает свою собственную модель представления и связывает ее«автоматически», поэтому FirstPageView получил свою viewmodel.

если выбор изменения SliderView, я хочу привязать к FirstPageView новую модель представления

если FirstPageView получил кнопку (Next), щелкните внутри нее, я хочу переключить FirstPageView наSecondPageView и т. Д.

Я немного растерялся, кто-нибудь может подсказать, как спроектировать и решить эту проблему?

Должен ли я использовать mvvm light или какой-то другой фреймворк?Я пытался использовать MvVM Light, но отсутствие примеров сдерживает меня.

Любое руководство будет приветствоваться, спасибо.

1 Ответ

2 голосов
/ 16 января 2012

Указанное ниже утверждение неверно:

каждый вид создает свою собственную модель вида и связывает ее "автоматически", так FirstPageView получил свою модель просмотра

Ваши представления не должны отвечать за жизненный цикл вашей модели представления.

Одна из самых важных вещей, которую следует помнить при использовании шаблона MVVM, - это то, что должно быть возможно выполнить ваше приложение без вашего взгляда. В вашем случае создаст модель вида, которая будет близко соответствовать желаемому виду. Вот псевдокод:

MasterDetailsViewModel
{
  MenuViewModel
  CurrentPageViewModel
  SliderViewModel
}

Обратите внимание на большую разницу в том, что у нас есть CurrentPageViewModel, а не модель представления, специфичная для страницы. Это свойство начинается с экземпляра FirstPageViewModel, а затем изменяется при переходе пользователя с одной страницы на другую.

Для получения подробной информации о том, как этого добиться, я бы настоятельно рекомендовал статью Джоша Смита:

Приложения WPF с шаблоном проектирования Model-View-ViewModel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...