在页面加载时停止触发事件
本文关键字:事件 加载 | 更新日期: 2023-09-27 18:33:29
我有一个带有IsChecked="true"
属性和Checked
事件的复选框:
<CheckBox Checked="myChBox_Checked" IsChecked="True" />
我不想在页面加载时触发Checked
事件。因为我在方法中使用了其他控件,所以得到NullReferenceException
:
private void myChBox_Checked(object sender, RoutedEventArgs e) {
myComboBox ... // NullReferenceException
}
我应该怎么做才能阻止启动触发?
例如,您可以:
-
在 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 }
您可以在事件处理程序中检查 null 引用,或者在事件处理程序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
}
}
}