WPF:获取所选单元格的行标题

时间:2013-05-10 08:25:18

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

所以我有一个带有一些值的 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" +我的数据网格包含行标题和列标题 - 需要这些值。

我正在查看文档:{​​{3}}和此处:http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.selectedcells.aspx但它说我可以从那里获得一行,但Visual Studio不允许我这样做(尝试类似:{{ 1}})

同时检查了http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcellinfo.aspx ..并尝试使用这些属性,但它无效。

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

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

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

^现在我可以得到http://msdn.microsoft.com/en-us/library/system.data.datarowview.aspx(作为“System.Data.DataRow”)..但为什么我不能得到行标题?

1 个答案:

答案 0 :(得分:0)

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

这可能是一个漫长/怪异/最不好的解决方案,但它正如我想要的那样工作。所以如果你们有更好的解决方案告诉我:]

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

所以我决定获取行索引:

代替:

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

我用过这个:

myArray [] = {my row header values};

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

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