我有一个WPF应用程序,我试图有效地切换窗口的内容。我想出了以下解决方案:
App.cs
internal static Lazy<HomeUserControl> HomePage;
MainWindow.cs
public MainWindow()
{
InitializeComponent();
Application.Current.MainWindow.Content = App.HomePage;
}
HomeUserControl.cs
public HomeUserControl()
{
InitializeComponent();
}
我遇到的问题是MainWindow.Content
基本上被设置为空白窗口(它实际上正在更改MainWindow
的内容)。如果我使用App.MainWindow.Content = new HomePageUserControl()
,一切正常。但是,我想保留一个页面实例,这就是为什么我在App类中创建一个静态实例。无论是否使用Lazy<>
,都会出现此问题。我已经尝试检查HomePage
是否null
,我找回了一个标有Value is not created.
的标签,我很确定这是一个未初始化{{1}的代表};但是,只有在我检查Lazy<>
时才会出现这种情况。有什么想法吗?
答案 0 :(得分:1)
尝试
Application.Current.MainWindow.Content = App.HomePage.Value;