C# WPF数据网格中SelectionChanged和SelectedCellsChanged之间发生了什么
我有一个数据网格,其中有一些行,当用户选择一行时,我想选择相应的行。在SelectionChanged事件中执行此操作时,将正确设置行get selected dataGrid.SelectedItems,但这不会显示在GUI中,仅选择了行标题,而不是行 如果在SelectedCellsChanged事件中选择其他行,则一切都会按预期进行。有人知道在这两者之间发生了什么吗?或者更好:正确的方法应该是什么 下面是一些代码,可以使用.Net 4.5.1复制:C# WPF数据网格中SelectionChanged和SelectedCellsChanged之间发生了什么,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个数据网格,其中有一些行,当用户选择一行时,我想选择相应的行。在SelectionChanged事件中执行此操作时,将正确设置行get selected dataGrid.SelectedItems,但这不会显示在GUI中,仅选择了行标题,而不是行 如果在SelectedCellsChanged事件中选择其他行,则一切都会按预期进行。有人知道在这两者之间发生了什么吗?或者更好:正确的方法应该是什么 下面是一些代码,可以使用.Net 4.5.1复制: <DataGrid Sel
<DataGrid SelectionChanged="DataGrid_SelectionChanged" Name="myDatagrid"
ItemsSource="{Binding}" SelectedCellsChanged="myDatagrid_SelectedCellsChanged"/>
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Does not display correctly
// myDatagrid.SelectedItems.Add(somerow)
}
private void myDatagrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
// Does display correctly
// myDatagrid.SelectedItems.Add(somerow)
}
这将导致StackOverflowException。不要在与选择更改相关的事件中更改选择。不要担心:当然,我使用一个标志来防止循环,从而防止StackOverflowException。