2017-08-04 72 views
-2

我正在開發一個wpf應用程序,其中當用戶在組合框上執行選擇更改動作時,會觸發選擇更改事件,但在更新datagrid.itemsSource的事件處理程序中,會顯示錯誤以使用新關鍵字通過斷點創建對象,我已經看到,在事件處理程序中,datagrid對象本身爲null,但它在MainWindow函數中不爲null。爲什麼這樣?無法在事件處理程序combobox_selectionChanged中訪問datagrid.itemsSource?

private void majorkeys_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    {   
     minordata.ItemsSource = ReadLibrary.get_minor_records(majorkeys.SelectedValue.ToString(), minorkeys.SelectedValue.ToString()); 
    } 
+0

這可能是因爲在InitializeComponent期間觸發了SelectionChanged事件,而'minordata'字段尚未設置。 – Clemens

+0

你說得對! @Clemens – Sabeen

回答

0

讓我回答我的問題,問題是,當組件被初始化,comboBox.selectedIndex變化,因此comboBox_selectionChanged事件當時沒有填充我的DataGrid的ItemsSource時引發的,因此它是空的。我已經通過檢查datagrid的itemsSource是否爲null來解決問題。這裏是代碼,

private void minorkeys_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (minordata != null) 
     { 
      minordata.ItemsSource = ReadLibrary.get_minor_records(majorkeys.SelectedValue.ToString(), minorkeys.SelectedValue.ToString()); 
     } 
    } 

yay! :)

相關問題