【问题标题】:Prevent multiple row selection in WPF DataGrid防止 WPF DataGrid 中的多行选择
【发布时间】:2012-03-12 20:26:17
【问题描述】:

我在 WPF DataGrid 中有以下 XAML 标记:

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

【问题讨论】:

    标签: c# wpf xaml datagrid


    【解决方案1】:

    尝试指定&lt;DataGrid SelectionMode="Single" 以及可选的SelectionUnit="FullRow"

    SelectionMode 的可用选项是

    • 单人
    • 扩展

    对于 SelectionUnit 来说

    • 细胞
    • 全行
    • CellOrRowHeader

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2017-04-04
      • 2011-01-30
      • 2012-10-14
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多