所以我有一个带有一些值的 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”)..但为什么我不能得到行标题?
答案 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()] ;
它按我的需要工作,所以我很满意。如果您发现任何错误或更好的解决方案,请添加答案/评论。