我有一个带有IsChecked="true"
属性和Checked
事件的CheckBox:
<CheckBox Checked="myChBox_Checked" IsChecked="True" />
我不想在页面加载时触发Checked
事件。因为我在方法中使用其他控件,我得到NullReferenceException
:
private void myChBox_Checked(object sender, RoutedEventArgs e) {
myComboBox ... // NullReferenceException
}
我该怎样做才能阻止启动时的触发?
答案 0 :(得分:2)
您可以例如:
订阅 Page.Loaded 事件:
this.Loaded += (sender, e) => myChBox.Checked += myChBox_Checked;
或者更好的方法是检查您的活动null
:
private void myChBox_Checked(object sender, RoutedEventArgs e)
{
if (something == null) return;
myComboBox ... // NullReferenceException
}
答案 1 :(得分:1)
您可以在事件处理程序中检查空引用,或者在页面Loaded
事件处理程序中指定它:
public partial class MyPage : Page
{
public MyPage()
{
InitializeComponent();
this.Loaded += page_Loaded;
}
private void page_Loaded(object sender, RoutedEventArgs e)
{
myChBox.Checked += myChBox_Checked;
}
private void myChBox_Checked(object sender, RoutedEventArgs e)
{
if (myComboBox != null)
{
myComboBox ... // Should not be null, but check anyway
}
}
}