Поведение WPF DataGrid
по умолчанию заключается в выборе при щелчке строки, если SelectionMode="Extended"
, что я и хочу, однако я также хочу, чтобы строка была отменена, если она уже была выбрана при нажатии.
Я попробовал следующее, чтобы отменить выбор строки, как только она выбрана, кажется, что выбор строки происходит до события щелчка мыши.
private void DoGridMouseLeftButtonUp(object sender, MouseButtonEventArgs args) {
// Get source row.
DependencyObject source = (DependencyObject)args.OriginalSource;
var row = source.FindParent<DataGridRow>();
if (row == null)
return;
// If selected, unselect.
if (row.IsSelected) {
row.IsSelected = false;
args.Handled = true;
}
}
Где я привязываюсь к этому событиюсо следующей сеткой.
<DataGrid SelectionMode="Extended"
SelectionUnit="FullRow"
MouseLeftButtonUp="DoGridMouseLeftButtonUp">