VB.NET WPF如何从datagrid获取列值?

时间:2016-10-27 22:22:12

标签: mysql wpf vb.net datatable datagrid

所以我还不熟悉WPF,在WinForms中,你可以拥有CellDoubleClick事件,我可以得到像

这样的值
row.Cells("ID").Value.ToString()

但是在WPF中,row不是datagrid的成员。那么,如果用户只需双击该行,如何获取所选ID的值? enter image description here 这是一张图片来澄清我的问题。显示的记录来自数据表。当显示多行记录,并且用户双击任何一行时,如何获取所选行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

1 个答案:

答案 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。

希望有所帮助!