0

所以我有一个填充一些值的数据网格。我有一些选定的单元格,我需要的是获取每个单元格的行标题

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

我获取值的代码:

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();

^ 现在我可以获取(作为“System.Data.DataRow”).. 但是为什么我不能获取行标题?

4

1 回答 1

0

这可能很奇怪,但我终于自己找到了答案.. :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()] ;

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

于 2013-05-13T10:52:55.780 回答