WPF datagridcombobox列:如何管理选择事件的变化?

我有一个带有combobox列的数据网格

  

我想要一个仅在用户将值更改为combobox时触发的事件。 我该如何解决这个问题?

我在CodePlex上找到了解决方案。 在这里,经过一些修改:

      

并在代码隐藏中:

 private void SomeSelectionChanged(object sender, SelectionChangedEventArgs e) { var comboBox = sender as ComboBox; var selectedItem = this.GridName.CurrentItem; } 

来自CodePlex的@kevinpo提供的xaml代码以及David Mohundro博客的帮助,以编程方式提供:

 var style = new Style(typeof(ComboBox)); style.Setters.Add(new EventSetter(ComboBox.SelectionChangedEvent, new SelectionChangedEventHandler(SomeSelectionChanged))); dataGridComboBoxColumn.EditingElementStyle = style; 

要完成Kevinpo的答案,对于你背后的代码应该添加一些保护,因为selectionChanged事件是使用datagridcolumncombobox触发2次:

1)第一次触发:当你选择一个新项目时

2)第二个触发器:在您选择新项目后单击其他数据网格列时

问题是,在第二个触发器上,ComboBox值为null,因为您没有更改所选项。

 private void SomeSelectionChanged(object sender, SelectionChangedEventArgs e) { var comboBox = sender as ComboBox; if (comboBox.SelectedItem != null) { YOUR CODE HERE } } 

这是我的问题,我希望它会帮助别人!