6
在簡單的MVVM方法中,我通過覆蓋App.xaml中的OnStartup將MainWindow鏈接到ViewModel。在多個窗口實例中覆蓋WPF OnStartUp結果
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),而另一個窗口顯示不正確。
Alex Curtis已經給出了正確的答案。解釋它:你只需在啓動事件中創建另一個窗口,ApplicationStartupUri只是告訴wpf「請在完成加載後爲我創建這個窗口」。在初始化組件之後,您也可以將DataContext賦值放置在窗口本身中。 – dowhilefor