WPF DataGrid如何选择行或单元格?

WPF DataGrid行与单元格选择机制析 WPF DataGrid控件作为数据展示与交互的核心组件,其选择功能直接影响用户操作体验。开发者需根据业务场景灵活配置行选择或单元格选择模式,通过合理设置属性与事件处理实现精准的数据交互。 核心选择模式配置 SelectionUnit属性是控制选择行为的关键,通过设置枚举值实现不同选择粒度:
  • `SelectionUnit="FullRow"`:启用整行选择模式,点击行内任意单元格将选中整行,选中状态同步应用于行内所有单元格。
  • `SelectionUnit="Cell"`:启用单元格选择模式,支持单独选中单个单元格,可通过按住Ctrl键实现多单元格离散选择。
  • `SelectionUnit="CellOrRowHeader"`:混合模式,点击单元格选中单个单元格,点击行头选中整行,兼顾两种选择需求。 选择结果获取 通过DataGrid内置属性可实时获取选择状态:
    • `SelectedItem`:返回当前选中行的数据对象,适用于行选择模式
    • `SelectedItems`:返回多选模式下所有选中行的集合
    • `SelectedCells`:返回选中单元格的`DataGridCellInfo`集合,包含单元格所在行与列信息 SelectionMode与多选行为 配合SelectionMode属性控制选择范围:
      • `SelectionMode="Single"`:仅允许单选,每次只能选中一行或一个单元格
      • `SelectionMode="Extended"`:支持多选,通过Shift键选中连续范围,Ctrl键选中离散项 选择样式自定义 通过`CellStyle`与`RowStyle`修改选中状态的视觉呈现: ```xml <style TargetType="DataGridCell"> <style.Triggers> ``` 通过`IsSelected`触发器可自定义选中单元格的背景色、前景色等视觉属性,增强交互反馈。

        处理选择变更事件时,可通过`SelectionChanged`事件监听选择状态变化,结合`e.AddedItems`与`e.RemovedItems`分析选择集合的变动,实现数据选中后的业务逻辑处理。合理配置选择模式能够显著提升数据编辑效率,满足表格数据的多样化交互需求。

延伸阅读: