2014-12-06 118 views
1

停止触发事件我有IsChecked="true"财产和Checked事件复选框:页面加载

<CheckBox Checked="myChBox_Checked" IsChecked="True" /> 

我不想触发页面加载Checked事件。因为我的方法使用其他控件,我也得到NullReferenceException

private void myChBox_Checked(object sender, RoutedEventArgs e) { 
    myComboBox ... // NullReferenceException 
} 

那我该怎么办,停止从启动触发?

回答

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

您可以只为您在事件处理空引用,或在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 
     } 
    } 

}