2010-03-03 5 views
3

Existe-t-il un meilleur moyen pour déterminer la ligne sur laquelle un utilisateur a cliqué deux fois dans une grille de données?WPF: cellule DataGrid Double-cliquez sur

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 

Répondre

0
 Dim data = CType(ResultsGrid.SelectedItem, Customer) 
0

Je l'ai utilisé C# trouver juste une façon de le convertir en VB:

DataRow dr = (DataRow)((System.Data.DataRowView)((Microsoft.Windows.Controls.DataGrid)sender).SelectedItem).Row; 
//do your stuff here using the dr variable