У меня есть DataGrid в WPF. Я использую этот метод для привязки SelectedItems к моей виртуальной машине. Я создал команду, которая меняет местами две выбранные строки DataGrid. (На самом деле я меняю идентификаторы, обновляю db и перезагружаю (упорядоченный по идентификатору) ObservableCollection в DataGrid) После этого я не вижу выбора в DataGrid, но dataGrid.SelectedItems все еще содержит две строки. Я проверил это в CodeBehind. Если я выберу строку, тогда dataGrid.SelectedItems теперь содержит 3 элемента. Я безуспешно пытался очистить выделение из CodeBehind. Я пробовал эти методы.
dataGrid.UnselectAll();
dataGrid.UnselectAllCells();
dataGrid.SelectedCells.Clear();
dataGrid.SelectedItem = null;
dataGrid.IsEnabled = false;
dataGrid.IsEnabled = true;
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => dataGrid.Items.Refresh()));
Если я выберу две строки и попытаюсь отменить выбор перед заменой строк, тогда UnselectAll () будет работать отлично.