#wpf #mvvm
#wpf #mvvm
Вопрос:
Этот вопрос касается: Запуска приложения WPF / MVVM: навигации между представлениямиhttp://www.codeproject.com/Articles/72724/Beginning-a-WPF-MVVM-application-Navigating-betwee.aspx
Я спросил автора статьи в его блоге о том, как подойти к этой проблеме, однако я все еще в тупике.
Это мое приложение.xaml.cs
namespace PlatformXpress
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var container = new MicrokernelContainer();
container.RegisterA<IMainViewModel>(typeof(MainViewModel));
container.RegisterA<IHomeViewModel>(typeof(HomeViewModel));
container.RegisterA<ICompanyOverviewViewModel>
(typeof(CompanyOverviewViewModel));
container.GetA<IMainViewModel>().NavigateToView(HomeView);
Container.InitializeContainerWith(container);
}
}
}
Теперь все работает так, как и должно быть в приведенном примере (я изменил настройки, чтобы соответствовать моему использованию), и в моем запросе предлагалось добавить контейнер.Получить строку. В VS 2010 единственная проблема заключается в конце указанной строки @ (HomeView), это представление, которое мне нужно запустить при запуске, и я просто не могу заставить его работать. ошибка заключается в том, что нет подходящей переменной.
Я искал в Google информацию об использовании контейнера.GetA и возвращаемые результаты бесполезны.
Кто-нибудь здесь, вероятно, сможет довольно легко решить эту проблему одним взглядом!
Приветствую Рохана
Ответ №1:
Вам нужен экземпляр HomeView
:
container.GetA<IMainViewModel>().NavigateToView(new HomeView());