WPF, MVVM, Shell и UserControls - PullRequest
       16

WPF, MVVM, Shell и UserControls

0 голосов
/ 23 июля 2011

Я создаю приложение WPF, основанное на шаблоне MVVM (с использованием MVVM Light).Он имеет внешнюю «оболочку», которая придает основному виду приложение (строку состояния и т. Д.), А затем весь контент содержится в различных пользовательских элементах управления, которые я заменяю с помощью Telerik RadTransitionControl.Мои два вопроса, связанные с этим, следующие:

  1. Я строю свои ViewModels, используя часть ViewModelLocator для целей Blendability.Это включает в себя базовый статический класс, который возвращает новый экземпляр ViewModel для привязки, и экземпляры по существу совместно используются, пока приложение работает.Вопрос для этого заключается в том, должен ли я использовать такую ​​концепцию, как «ViewLocator», в том смысле, что это статический класс, который имеет статическое свойство для всех моих представлений (приложение имеет ~ 10, поэтому оно не очень большое), и когда мне нужноПереход к новому виду я просто вытаскиваю из статического множества.Плюсы этого - простота использования, но есть ли минусы?Есть ли лучший способ добиться этого?

  2. Каков наилучший способ перехода между видами?В настоящее время я передаю enum своему представлению оболочки (через обмен сообщениями), чтобы указать, какое представление мне нужно, но это кажется очень странным и не поддерживает передачу определенных аргументов представлений.Я играл с пользовательским классом, но для каждого просмотра мне почти понадобился другой класс, и казалось, что это может быть излишним.Какую стандартную практику применяют разработчики WPF для этого процесса?

Заранее спасибо за помощь.Я довольно новичок в WPF, поэтому хочу убедиться, что я изучаю отраслевые стандарты и, по возможности, избегаю взломов.

1 Ответ

1 голос
/ 26 июля 2011

Я работаю над приложением, которое использует тот же шаблон.У нас есть статический локатор, и мы обращаемся к одному и тому же ViewModel каждый раз, когда мы переключаемся на другую часть приложения (представление сведений, представление списка, представление карты и т. Д.). У нас был большой успех с шаблоном ViewModelLocator - это довольно легкочтобы понять.Мы не провели значительного тестирования с запуском приложения в течение нескольких часов.

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

...