Предотвращение выбора нескольких строк в WPF DataGrid

У меня есть следующая разметка XAML в DataGrid WPF:

<DataGrid ItemsSource="{Binding ResultList}" Grid.ColumnSpan="4" Grid.Row="7" Height="150" 
          HorizontalAlignment="Left" Margin="10,0,0,0" Name="gvResults" 
          VerticalAlignment="Bottom" Width="590" AutoGenerateColumns="False" SelectionChanged="gvResults_SelectionChanged"
           SelectionUnit="FullRow">
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True" Binding="{Binding Name}" Header="Name" ScrollViewer.VerticalScrollBarVisibility="Auto" Width="190" />
        <DataGridTextColumn IsReadOnly="True" Binding="{Binding Surname}" Header="Surname" Width="190" />
        <DataGridTextColumn IsReadOnly="True" Binding="{Binding Age}" Header="Age" Width="*" />
    </DataGrid.Columns>
</DataGrid>

Можно ли запретить пользователям выбирать несколько строк, удерживая клавишу Ctrl или выбрав несколько строк с помощью мыши?

Я пробовал следующий код в событии SelectionChanged, но он не работает:

private void gvResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (gvResults.SelectedItems.Count > 1)
    {
        e.Handled = true;
    }
}

Ответы

Ответ 1

Попробуйте указать <DataGrid SelectionMode="Single" и необязательно SelectionUnit="FullRow"

Доступными параметрами SelectionMode являются

  • Single
  • Расширенные

а для SelectionUnit -

  • Cell
  • FullRow
  • CellOrRowHeader