6

如何获取 DataGrid 上单击/选定单元格的索引?
我的 DataGrid 列自动生成,我不想使用任何 DataTemplate 。

<DataGrid ItemsSource="{Binding Table, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"
          AutoGenerateColumns="True">
</DataGrid>
4

3 回答 3

11
DataGrid x = (DataGrid)this.FindName("myDataGrid");
var index = x.SelectedIndex;

还有其他有用的属性:

x.CurrentColumn;
x.CurrentItem;
x.SelectedItem;
x.SelectedValue;
于 2013-09-04T15:14:28.030 回答
2

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
于 2016-01-08T14:39:42.970 回答
0

我对行索引也有同样的问题,BR1COP 给出的答案是唯一对我有用的答案。我没有使用循环,因为我只需要一个单元格的索引,任何选定的单元格。所以我这样使用它:

DataGridCellInfo cell = myGrid.SelectedCells[0];
int rowIndex = dividingGrid.Items.IndexOf(cell.Item);
于 2019-10-25T13:49:48.697 回答