无法在事件处理程序combobox_selectionChanged中访问datagrid.itemsSource?

时间:2017-08-04 07:20:18

标签: c# wpf datagrid eventhandler

我正在开发一个wpf应用程序,当用户对组合框执行选择更改操作时,会触发选择更改事件,但在更新datagrid.itemsSource的事件处理程序中,显示错误以使用新的关键字创建对象,通过断点我已经看到,事件处理程序内部的datagrid对象本身为null,但它在MainWindow函数中不为null。为什么会这样?

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

1 个答案:

答案 0 :(得分:0)

让我回答一下我自己的问题,问题是当组件初始化时,comboBox.selectedIndex发生变化,因此当时触发了comboBox_selectionChanged事件,我的datagrid的itemsSource没有被填充,因此它是null。我通过检查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());
        }
    }

耶! :)