如何在datagrid中获取选定的列数

时间:2013-10-24 05:48:49

标签: wpf

我想要DataGrid的选定列索引。例如,如果我选择第一列,我想要第一列的索引(index = 0)。

我在DataGrid SelectionChanged事件中尝试过,但我似乎无法获得特定的列索引。如果有人知道如何做,请帮我一些示例代码。

2 个答案:

答案 0 :(得分:0)

DataGrid.Items属性返回表示DataGrid中DataGridItems的DataGridItemCollection。

每个DataGridItem代表渲染表中的单个行。此外,DataGridItem公开了一个表示no的Cells属性。在渲染表中的tablecells(换句话说,列)。

// Get the Row Count
int rowCount = myGrid.Items.Count;

// Get the no. of columns in the first row.
int colCount = myGrid.Items[0].Cells.Count;

答案 1 :(得分:0)

我假设您需要所选列的索引。以下是我提出的代码:

    List<int> selectedColumnIndexes = new List<int>(dataGrid.SelectedCells.Count);

    for (int i = 0; i < dataGrid.SelectedCells.Count; i++)
    {
        foreach (DataGridColumn column in dataGrid.Columns)
        {
            if (column.DisplayIndex == dataGrid.SelectedCells[i].Column.DisplayIndex) 
            {
                    if (!selectedColumnIndexes.Contains(column.DisplayIndex))
                    {
                        selectedColumnIndexes.Add(column.DisplayIndex);
                    }
            }
        }
    }

因此,您将拥有当前所选列的所有索引的列表。 This question提供了一些很好的线索,可以指明这里的方向。

显然,如果你只想要实际选择的列数,那么在for循环运行之后,只需选择该值-ColumnIndexes.Count。