Нужна помощь с получением ViewModel для отображения при запуске

#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());