所以我还不熟悉WPF,在WinForms中,你可以拥有CellDoubleClick事件,我可以得到像
这样的值row.Cells("ID").Value.ToString()
但是在WPF中,row不是datagrid的成员。那么,如果用户只需双击该行,如何获取所选ID的值? 这是一张图片来澄清我的问题。显示的记录来自数据表。当显示多行记录,并且用户双击任何一行时,如何获取所选行ID的值?要获得selectedIndex很容易,但我想知道如何获得ID的值。我失去了。
------- ------- UPDATE
所以在 WinForms 中,我会获得这样的ID但不确定如何在WPF中使用。
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
If e.RowIndex >= 0 Then
Dim row As New DataGridViewRow
row = Me.DataGridView1.Rows(e.RowIndex)
THE_ID = row.Cells("ID").Value.ToString() 'The ID is saved
End If
End Sub
答案 0 :(得分:2)
在WPF数据网格中,网格本身不应该用于获取数据。但相反,请使用您了解网格的信息。选定的行索引或“ SelectedIndex ”是您用于交叉引用绑定数据源的内容。
例如,假设您有一些DataTable并将其视图绑定到DataGrid,您可能会看到如下内容:
Dim View As DataView = TryCast(DataGrid1.ItemsSource, DataView)
If View IsNot Nothing Then
Dim ViewRow As DataRowView = View.Item(DataGrid1.SelectedIndex)
Dim ColumnValue As Object = ViewRow.Item("ID") 'or ViewRow.Item(0) for positional value.
'do something with ColumnValue here.
End If
这应该适用于您将DataTable的视图绑定到网格的情况,但请记住网格可以使用任何IEnumerable。所以你的问题在很大程度上取决于你的ItemsSource是什么对象,以及该对象如何实现IEnumerable。
希望有所帮助!