【问题标题】:WPF: Getting row header of selected cellsWPF:获取选定单元格的行标题
【发布时间】:2013-05-10 08:25:17
【问题描述】:

所以我有一个填充了一些值的 datagrid。我有一些选定的单元格,我需要的是获取每个单元格的列和行标题。

我已经找到了如何轻松获取列标题,但是第一行不想这么容易找到我......

我获取值的代码:

string[,] matrix = new string[2, 4]; 

^ 我最多有 4 个选定的单元格 - 我想将它们的标题(行 + 列)的值保留为字符串。

IList<DataGridCellInfo> theChosenOnes = mydatagrid.SelectedCells;

int c = 0;

foreach (DataGridCellInfo cell in theChosenOnes)
    {
       matrix[1,c] = cell.Column.Header.ToString();

^ 这给了我我想要的 - 此单元格的列标题包含的字符串

       matrix[0,c] = cell.Item.ToString();

^ 这给了我 - “System.Data.DataRowView”

       c++;
    }

我还应该添加我正在使用的信息 SelectionMode="Extended" + SelectionUnit="Cell" + 我的数据网格既有行标题又有列标题 - 需要这些值。

我正在查看文档:http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.selectedcells.aspx 和此处:http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcellinfo.aspx,但它说我可以从那里获得 Row,但 Visual Studio 不允许我这样做(尝试过类似:matrix[0,c] = cell.Row.Header.ToString();)

还检查了http://msdn.microsoft.com/en-us/library/system.data.datarowview.aspx .. 并尝试使用这些属性,但它不起作用。

我做错了什么?感谢您的帮助。

编辑:我用我在这里找到的东西“升级”了代码,但它仍然没有给我想要的东西:|

matrix[0, c] = ((DataRowView)cell.Item).Row.ToString();

^ 现在我可以得到row(as "System.Data.DataRow").. 但是为什么我不能得到行标题?

【问题讨论】:

    标签: c# wpf visual-studio-2010 datagrid selection


    【解决方案1】:

    这可能很奇怪,但我终于自己找到了答案..:D(只要没有其他人想帮助我:'(..)

    这可能是一个冗长/奇怪/不是最好的解决方案,但它可以按我的意愿工作。所以如果你们有更好的解决方案告诉我:]

    找到这个链接:http://techiethings.blogspot.in/2010/05/get-wpf-datagrid-row-and-cell.html

    所以我决定获取行索引:

    改为:

    matrix[0,c] = cell.Item.ToString();
    

    我用过这个:

    myArray[] = {我的行标题值};

    matrix[0,c] = myArray[((DataGridRow)mydatagrid.ItemContainerGenerator.ContainerFromItem(cell.Item)).GetIndex()] ;
    

    它可以按我的需要工作,所以我很满意。如果您发现任何错误或更好的解决方案,请添加答案/cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-14
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多