Я работаю с VS2015 над приложением WPF.
В одном из моих окон WPF я получил DataGrid с SelectionUnit = Cell и SelectionMode = Single.
Скорее я получил метод для перемещения строк внутри DataGrid вверх и вниз для сортировки.
Сортировка работает, но проблема в том, что последняя ячейка, выбранная курсором мыши, визуально всегда выбрана (синий фон), что может мешать пользователю.
Поэтому я попытался удалить эту визуальную маркировку ячейки следующими строками кода:
datagrid.UnselectAllCells();
datagrid.SelectedCells.Clear();
Ни одна из двух строк не работает для меня.
Последняя выбранная ячейка все еще выделена.
Как я могу удалить этот выбор?
Любая помощь будет оценена.
Наконец, фрагмент из XAML с определением DataGrid:
<DataGrid x:Name="grdGraphicalElementMatrix" Grid.Row="1" Grid.Column="0"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
CanUserAddRows="True"
IsReadOnly="False"
AutoGenerateColumns="False"
SelectionUnit="Cell" SelectionMode="Single"
CurrentCellChanged="grdGraphicalElementMatrix_CurrentCellChanged"
ItemsSource="{Binding GraphElemMatrix}">
<DataGrid.Columns>
<DataGridTextColumn x:Name="colXAssignment"
Width="1*"
Binding="{Binding Path=X}"
Header="X"/>
<DataGridTextColumn x:Name="colYAssignment"
Width="1*"
Binding="{Binding Path=Y}"
Header="Y"/>
</DataGrid.Columns>
</DataGrid>
grdGraphicalElementMatrix_CurrentCellChanged - это метод, в котором я могу получить выбранную строку и столбец, когда пользователь щелкнул в одной из ячеек, чтобы выбрать ее.
private void grdGraphicalElementMatrix_CurrentCellChanged(object sender, EventArgs e)
{
if (grdGraphicalElementMatrix.CurrentCell != null && grdGraphicalElementMatrix.CurrentCell.Column != null)
{
vm.GrdGraphicalElementMatrixSelColIndex = grdGraphicalElementMatrix.CurrentCell.Column.DisplayIndex;
vm.GrdGraphicalElementMatrixSelRowIndex = grdGraphicalElementMatrix.Items.IndexOf(grdGraphicalElementMatrix.CurrentItem);
}
}