2017-08-04 6 views
-2

私は、コンボボックスで選択変更されたアクションを実行すると、選択された変更イベントがトリガされるwpfアプリケーションを開発していますが、datagrid.itemsSourceを更新するとイベントハンドラで新しいキーワードを使用するエラーが表示されますブレークポイントを介して、オブジェクトを作成する私は、イベントハンドラDataGridオブジェクト自体がnullであることを見てきましたが、MainWindow関数ではnullではありません。それはどうしてそうですか?私は自分の質問に答えてみましょうイベントハンドラのdatagrid.itemsSourceにアクセスできませんcombobox_selectionChanged?

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

あなたはそれが正しいです! @クレメンス – Sabeen

答えて

0

は、問題は、それゆえ、それがnullの場合、コンポーネントが初期化されるとき、comboBox.selectedIndexの変更とは、したがってcomboBox_selectionChangedイベントは私のDataGridののItemsSourceが取り込まれていないその時点でトリガーされるということでした。私は、データグリッドの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! :)

関連する問題