如何获取 DataGrid 上单击/选定单元格的索引?
我的 DataGrid 列自动生成,我不想使用任何 DataTemplate 。
<DataGrid ItemsSource="{Binding Table, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"
AutoGenerateColumns="True">
</DataGrid>
DataGrid x = (DataGrid)this.FindName("myDataGrid");
var index = x.SelectedIndex;
还有其他有用的属性:
x.CurrentColumn;
x.CurrentItem;
x.SelectedItem;
x.SelectedValue;
This is the solution I found, when selection unit is "cell" and you need to loop through the selected cells, getting row and column index. 我有一个只有 textcolumn 的 DataGrid,还有一个数据表(从 csv 文件创建)作为 itemssource。
For Each cell As DataGridCellInfo In dataGrid1.SelectedCells
MsgBox(cell.Column.DisplayIndex)
MsgBox(dataGrid1.Items.IndexOf(cell.Item))
Next
我对行索引也有同样的问题,BR1COP 给出的答案是唯一对我有用的答案。我没有使用循环,因为我只需要一个单元格的索引,任何选定的单元格。所以我这样使用它:
DataGridCellInfo cell = myGrid.SelectedCells[0];
int rowIndex = dividingGrid.Items.IndexOf(cell.Item);