単純な MVVM アプローチでは、App.xaml で OnStartup をオーバーライドして、MainWindow を ViewModel にリンクします。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow window = new MainWindow();
var viewModel = new MainWindowViewModel();
window.DataContext = viewModel;
window.Show();
}
}
これにより、WPF アプリケーションを実行すると、MainWindow の 2 つのインスタンスが生成されます。スタートアップをオーバーライドしているので、1つだけになるべきではありませんか?
ウィンドウの 1 つは正しい DataContext (ViewModel) を表示していますが、もう 1 つはそうではありません。