C# c wpf grid-未为同一行中的单元格激发SelectedCellsChanged

C# c wpf grid-未为同一行中的单元格激发SelectedCellsChanged,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我有一个带有SelectedCellsChanged事件的数据网格。从不同行中选择单元格时会触发该事件,但如果从当前行中选择单元格,则不会触发该事件 xaml代码: <DataGrid Name ="NavDataGrid" Margin="0,0,0,0" VerticalAlignment="Top" ItemsSource="{Binding NavTabl

我有一个带有SelectedCellsChanged事件的数据网格。从不同行中选择单元格时会触发该事件,但如果从当前行中选择单元格,则不会触发该事件

xaml代码:

  <DataGrid Name ="NavDataGrid"
                    Margin="0,0,0,0" 
                    VerticalAlignment="Top" 
                    ItemsSource="{Binding NavTable}" 
                    CanUserAddRows="False"
                    SelectionMode="Extended"        
                    AutoGenerateColumns="False"
                    SelectedCellsChanged="NavDataGrid_SelectedCellsChanged"                          
                    PreviewMouseWheel="NavDataGrid_PreviewMouseWheel">
我尝试过SelectionChanged事件,但它的效果相同

我是wpf的新手,所以这可能是一个简单的问题,任何想法都会很好


谢谢

事实上,这就是WPF数据网格的工作方式。您必须手动检测已选择的单元格

见医生

挑选 默认情况下,当用户单击DataGrid中的单元格时,会选择整行,并且用户可以选择多行。您可以设置SelectionMode属性以指定用户是否可以选择单元格、整行或两者。设置SelectionUnit属性以指定是可以选择多行或多个单元格,还是只能选择单个行或单元格。 您可以从SelectedCells属性获取所选单元格的相关信息。您可以在SelectedCellsChanged事件的SelectedCellsChangedEventArgs中获取有关已更改选择的单元格的信息。调用SelectAllCells或UnselectAllCells方法以编程方式选择或取消选择所有单元格。有关详细信息,请参见DataGrid控件中的默认键盘和鼠标行为

你可以将自己挂接到另一个事件上,例如:MouseDown/Clicked,获取已单击的单元格,然后做你必须做的事情


我建议读一下这篇文章:

事实上,WPF数据网格就是这样工作的。您必须手动检测已选择的单元格

见医生

挑选 默认情况下,当用户单击DataGrid中的单元格时,会选择整行,并且用户可以选择多行。您可以设置SelectionMode属性以指定用户是否可以选择单元格、整行或两者。设置SelectionUnit属性以指定是可以选择多行或多个单元格,还是只能选择单个行或单元格。 您可以从SelectedCells属性获取所选单元格的相关信息。您可以在SelectedCellsChanged事件的SelectedCellsChangedEventArgs中获取有关已更改选择的单元格的信息。调用SelectAllCells或UnselectAllCells方法以编程方式选择或取消选择所有单元格。有关详细信息,请参见DataGrid控件中的默认键盘和鼠标行为

你可以将自己挂接到另一个事件上,例如:MouseDown/Clicked,获取已单击的单元格,然后做你必须做的事情

我建议读一下这篇文章:

 private void NavDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)