System.NullReferenceException 初始化时
System.NullReferenceException when initialization
我有一个名为 'mainWindow' 的 window,其中有两个名为 'mainFrame'、'sidepanel' 的框架,在 'mainWindow' 中,当我单击 'btn1' 时从 'sidepanel'、'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' 时想要这个结果。
请帮我出个好办法
正如@KooKiz 所建议的,这个给了我解决方案:
frame1.xaml.cs:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var page = ((mainWindow)App.Current.MainWindow).mainFrame.Content as Page;
var border = page.Content as Border;
}
frame1.xaml:
<Page Loaded="Page_Loaded">
<Border></Border>
</Page>
我有一个名为 'mainWindow' 的 window,其中有两个名为 'mainFrame'、'sidepanel' 的框架,在 'mainWindow' 中,当我单击 'btn1' 时从 'sidepanel'、'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' 时想要这个结果。
请帮我出个好办法
正如@KooKiz 所建议的,这个给了我解决方案:
frame1.xaml.cs:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var page = ((mainWindow)App.Current.MainWindow).mainFrame.Content as Page;
var border = page.Content as Border;
}
frame1.xaml:
<Page Loaded="Page_Loaded">
<Border></Border>
</Page>