Vous pouvez gérer l'événement ContextMenuOpening du DataGrid et en fonction de la source d'origine de l'événement routé vous ajustez votre menu contextuel. Ci-dessous est un exemple où je montre un menu contextuel si le contexte de données de la source originale est de type Inventaire sinon je ne montre pas le menu contextuel en gérant l'événement.
Private Sub InventoriesDataGrid_ContextMenuOpening(_
ByVal sender As Object, _
ByVal e As System.Windows.Controls.ContextMenuEventArgs) Handles _
InventoriesDataGrid.ContextMenuOpening
Dim context = DirectCast(e.OriginalSource, System.Windows.FrameworkElement).DataContext
If TypeOf context Is Inventory Then
InventoriesDataGrid.ContextMenu = InventoriesDataGrid.Resources("DefaultContextMenu")
Else
e.Handled = True 'Do not show context menu.
End If
End Sub
Je suis sûr qu'il est trop tard pour vous aider maintenant, mais dans le cas où il n'est pas trop tard et pour quelqu'un d'autre qui vient à travers cela.
Je suis totalement d'accord avec ce que Cstick a fait ... nous faisons presque la même chose ici. – SuperOli