在一个简单的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的两个实例。难道它不应该导致一个,因为我压倒了创业公司吗?
其中一个窗口显示正确的DataContext(ViewModel),而另一个则不显示。
答案 0 :(得分:11)
在App.xaml中:
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
删除StartupUri。这将阻止第二个窗口加载。