初始化时System.NullReferenceException

时间:2016-08-08 09:44:43

标签: c# wpf xaml navigation

我有一个名为'mainWindow'的窗口有两个名为'mainFrame','sidepanel'和'mainWindow'的框架,当我从'sidepanel'点击'btn1'时,'mainFrame'被导航到'frame1',这是页面。在'frame1'中,我将Border控件作为唯一的子控件。

mainWindow.xaml.cs:

((mainWindow)App.Current.MainWindow).mainFrame.Navigate(new frame1());

frame1.xaml:

<Border>
</Border>

frame1.xaml.cs:

public frame1()
{
    InitializeComponent();
    var page = ((mainWindow)App.Current.MainWindow).mainFrame.Content as Page;
    var border = page.Content as Border;
}

将边框初始化为page.Content = null时,我遇到“System.NullReferenceException”。但是如果我第二次点击'btn1',它会被'System.Windows.Controls.Border'初始化。但是当我第一次点击'btn1'时,我想要这个结果。

请帮助我找到一个好的解决方案。

1 个答案:

答案 0 :(得分:0)

正如@KooKiz建议的那样,这个给了我解决方案:

frame1.xaml.cs:

-i

frame1.xaml:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    var page = ((mainWindow)App.Current.MainWindow).mainFrame.Content as Page;
    var border = page.Content as Border;
}
相关问题