dgList.SelectionUnit = DataGridSelectionUnit.FullRow;
dgList.SelectionMode = DataGridSelectionMode.Extended;
WPF中DataGrid使用时,需要将其SelectedItem转换成DataRowView进行操作
然而SelectedItem 与SelectedItems DataGrid的SelectionUnit跟SelectionMode两个属性的取值不同时有变化
一:当DataGrid.SelectionUnit == DataGridSelectionUnit.FullRow时,获取选中一行与多行的方法:
1选中多行
int count = DataGrid.SelectedItems.Count;
DataRowView[] drv = new DataRowView[count];
for (int i = 0; i
{
drv[i] = DataGrid.SelectedItems[i] as DataRowView;
}
return drv;
2选中一行
DataGrid.SelectedItem as DataRowView
二:但是当DataGrid.SelectionUnit 的属性是Cell或者CellOrRowHeader时,并且SelectionMode的值为 Extented时,这样处理就不太好。因为如果选中的是 cell 则SelectedItem的值为null。所以可以通过Cell来统一处理,无论SelectionUnit 的值是什么,总有选中的单元格,通过单元格确定该行。

本文介绍了在WPF中处理DataGrid的选择,包括全行选择和单元格选择。当SelectionUnit为FullRow时,可通过SelectedItems获取选中行;若为Cell或CellOrRowHeader,即使选择模式为Extended,仍可通过SelectedCells处理。提供了GetSelectedRow和GetSelectedRows方法,分别用于获取选中单行和多行的数据RowView。
最低0.47元/天 解锁文章
2376

被折叠的 条评论
为什么被折叠?



