2012-01-16 5 views
1

я пытаюсь ходить свой путь в MVVM мире,WPF, MVVM, MasterDetailPage, Проектирование

Я не судится любой рамки, только то, что я видел в http://blog.roboblob.com/tag/viewmodellocator/

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

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

так я что-то вроде

MasterDetailsView 
-> MenuView 
-> FirstPageView 
-> SliderView 

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

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

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

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

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

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

ответ

2

Заявление ниже неправильно:

каждый вид создать свою собственную ViewModel и связать его «автоматически» так FirstPageView получил ViewModel

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

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

MasterDetailsViewModel 
{ 
    MenuViewModel 
    CurrentPageViewModel 
    SliderViewModel 
} 

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

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

WPF Apps With The Model-View-ViewModel Design Pattern

+0

спасибо, я буду читать это, один вопрос, как я могу оставить изображение blandability свой путь? – ibm123

+0

MVVM повышает гибкость, хотя вам может потребоваться добавить данные времени разработки. Если мой ответ помог, пожалуйста, повысьте или отметьте как ответ. – ColinE

+0

спасибо, но я не уверен, как добавить данные о времени разработки, может ли вы показать мне, как пожалуйста? – ibm123