wpf datagrid怎么多选项
时间: 2023-07-29 14:09:29 浏览: 224
WPF DataGrid 支持多选,可以通过设置 SelectionMode 属性来启用多选功能。SelectionMode 属性有以下几个选项:
- Single:只能选择单个项。
- Extended:可以选择多个项,但需要按住 Ctrl 或 Shift 键才能选择。
- Multiple:可以选择多个项,无需按住 Ctrl 或 Shift 键。
默认情况下,DataGrid 的 SelectionMode 属性值为 Single。如果要启用多选功能,只需要将 SelectionMode 属性设置为 Extended 或 Multiple 即可。
以下是一个启用 Multiple 模式的示例:
```xml
<DataGrid SelectionMode="Multiple">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
</DataGrid.Columns>
</DataGrid>
```
在 Multiple 模式下,用户可以通过单击某个单元格来选择该单元格所在的行。如果需要选择多个行,可以按住 Ctrl 或 Shift 键并单击其他行。选定的行将会高亮显示。
如果需要获取选定的行,可以使用 DataGrid 的 SelectedItems 属性。该属性返回一个集合,其中包含了所有选定的行的数据项。例如,以下代码可以获取选定行的数量:
```c#
int selectedRowCount = dataGrid.SelectedItems.Count;
```
如果需要在多选模式下禁用某些行的选择,可以使用 DataGridRow 的 IsEnabled 属性。当 IsEnabled 属性为 false 时,该行将无法被选择。例如,以下代码禁用了第二行的选择:
```xml
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RowIndex}" Value="1">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
```
阅读全文