2012-02-22 17 views
15

Ho il seguente markup XAML in un DataGrid WPF:Prevenire selezione di riga multipla in 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> 

È possibile impedire agli utenti di selezionare più righe tenendo premuto il Ctrl o selezionando più righe con un topo?

ho provato il seguente codice nell'evento SelectionChanged ma non funziona:

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

risposta

47

Prova a specificare <DataGrid SelectionMode="Single" e opzionalmente SelectionUnit="FullRow"

Le opzioni disponibili per SelectionMode sono

  • Singolo
  • esteso

e per SelectionUnit sono

  • cellulare
  • FullRow
  • CellOrRowHeader