tags:

views:

787

answers:

2

Is there a better way than this to determine the row a user double-clicked on in a data-grid?

Private Sub ResultsGrid_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
    Dim node As DependencyObject = CType(e.OriginalSource, DependencyObject)
    Do Until TypeOf node Is Microsoft.Windows.Controls.DataGridRow OrElse node Is Nothing
        node = VisualTreeHelper.GetParent(node)
    Loop

    If node IsNot Nothing Then
        Dim data = CType((CType(node, Microsoft.Windows.Controls.DataGridRow)).DataContext, Customer)
        'do something
    End If

End Sub
+2  A: 

I've used c# just find a way to convert it to VB:

DataRow dr = (DataRow)((System.Data.DataRowView)((Microsoft.Windows.Controls.DataGrid)sender).SelectedItem).Row;
//do your stuff here using the dr variable
Jojo Sardez
A: 
       Dim data = CType(ResultsGrid.SelectedItem, Customer)
Jonathan Allen