Я делаю приложение WPF, используя фреймворк MVVM.Как переключить представления из представления?
Что я пытаюсь сделать, так это иметь форму входа в систему, когда пользователь нажимает кнопку в этом представлении, запускает LoginCommand для присоединенного ViewModel. Оттуда я либо хочу запустить новое окно, которое содержит остальную часть приложения, либо просто переключить представления из того же окна.
В настоящее время у меня есть так, что есть представление под названием MainView, у которого есть элемент управления содержимым внутри, связанный с View1. Однако, чтобы переключиться на View2, мне нужно поместить кнопку для этого в MainView, а не в View1, где он принадлежит.
Любые советы?
Это похоже на хороший способ его достижения. Разве нет проблемы с помещением этой функции в код позади, в отличие от модели представления? – benjgorman
@benjgorman Шаблон проектирования MVVM предназначен для того, чтобы код кода и кода приложения был раздельным, и я рассматриваю код класса 'Application' как волшебную область между ними, так как он должен инициализировать как пользовательский интерфейс, так и объекты приложения запустите приложение. Честно говоря, я редко имею более одного окна в своем приложении. Я предпочитаю использовать 'DataTemplates' и' ContentControls' для управления текущим контентом. Вы можете увидеть пример этого [здесь] (http://rachel53461.wordpress.com/2011/12/18/navigation-with-mvvm-2/) – Rachel
В вашем ответе эта часть вызывает у него головные боли. 'if (! Login.DialogResult.GetValueOrDefault()) { // Ошибка обрабатывается в классе входа, а не здесь Environment.Exit (0); } ' Как связать это с ICommand? Я попытался использовать IPropertyChangedEvent, но он срабатывает до появления окна входа в систему. – benjgorman