簡體   English   中英

VB.NET WPF如何從datagrid獲取列值?

[英]VB.NET WPF How to get the column value from datagrid?

因此,我對WPF不太熟悉,在WinForms中,您可以擁有CellDoubleClick事件,該事件可以得到如下值

row.Cells("ID").Value.ToString()

但是在WPF中,row不是datagrid的成員。 那么,如果用戶雙擊該行,如何獲得所選ID的值? 在此處輸入圖片說明 這是一張圖片以澄清我的問題。 顯示的記錄來自數據表。 當顯示多行記錄,並且用戶雙擊任一行時,如何獲得所選行ID的值? 要獲取selectedIndex很容易,但是我很想弄清楚如何獲取ID的值。

-------更新-------

因此,在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

在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。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM