我有一个绑定到数据网格的数据表,当我重新排序行时,我查找的字符串索引搞砸了。
我得到了Serial Num列的索引......即使在我移动它之后,这仍然有效。
Dim snIndex As Integer = asset_MasterDataGrid.Columns.[Single](Function(c) c.Header.ToString() = "Serial Num").DisplayIndex
然后我直接投了一行我点击
Dim item As DataRowView = DirectCast(asset_MasterDataGrid.SelectedItem, DataRowView)
然后我抓住Serial Num列中的单元格字符串。
Dim sn As String = item.Row(snIndex)
这当然不起作用,当我重新命令我的序列号列让我们说...索引0时,它抓取资产ID单元格字符串。我试图找到我点击的任何行的序列号,无论序列号列在哪里。
有关如何纠正此问题的任何想法?
答案 0 :(得分:2)
您可以按名称而不是索引访问DataRowView
的列:
Dim item As DataRowView = DirectCast(asset_MasterDataGrid.SelectedItem, DataRowView)
Dim sn As String = item("Serial Num")
只要您知道序列号列的名称,这应该可以。
答案 1 :(得分:0)
如果要单击数据网格标题以重新排序选择,链接的数据将不会重新排序,索引仍然相同,所选项目将是您选择的项目,但其在DataTable中的索引未更改< / p>
搜索列索引试试这个(C#)
{{1}}
显然这是您的序列号列。
现在要使用此序列号获取您的值,您需要在DataGrid中搜索它(而不是在您的dataTable中)