2012-02-22 20 views
15

Tengo el siguiente código XAML en un DataGrid WPF:evitar la selección de múltiples filas en WPF DataGrid

<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> 

¿Es posible evitar que los usuarios seleccionar varias filas mientras mantiene pulsada la Ctrl tecla o seleccionando varias filas con un mouse?

he probado el código siguiente en el evento SelectionChanged pero no funciona:

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

Respuesta

47

intente especificar <DataGrid SelectionMode="Single" y opcionalmente SelectionUnit="FullRow"

Las opciones disponibles para SelectionMode son

  • Simple
  • Extendido

y para SelectionUnit son

  • Cell
  • FullRow
  • CellOrRowHeader
Cuestiones relacionadas