В MVVM, то ViewModel является приложение. Это означает, что я обычно имею одного ViewModel запуска, который является точкой входа в моем приложении, и обычно я создаю экземпляр этого в коде App.xaml.cs OnStartup
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var app = new ShellView();
var context = new ShellViewModel();
app.DataContext = context;
app.Show();
}
Каждый раз в то время у меня есть приложение, которое создаст ViewModel в конструкторе окна запуска, но это не очень предпочтительно, потому что это означает, что если у меня есть логика запуска, я должен поместить это в код за View, а также, и мне не нравится смешение логики приложения в моем слое «Просмотр».
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new ShellViewModel();
}
}
Независимо от того, как вы это делаете, имейте в виду, что при использовании MVVM, ваши ViewModels ваши приложения, а не ваши мнения, так что, как правило, ваши ViewModels связаны каким-либо образом на старте ViewModel. Представления - это просто удобный для пользователя способ взаимодействия с вашим приложением (ViewModels).
Я всегда видел его часть и посылку с созданием представления. –