2009-08-27 5 views
1

J'utilise le modèle de conception MVVM et le DataContext de ma vue est défini sur un ViewModel.Comment lier à une propriété de ViewModel à partir d'un GridView

Dans ma vue, j'ai un ListView/GridView avec ItemsSource lié à un DataTable. L'un des GridViewColumns a un CellTemplate qui présente un Button. Je souhaite que la propriété IsEnabled du bouton soit liée à la propriété SelectButtonsEnabled de mon ViewModel.

L'utilisation de IsEnabled="{Binding Path=SelectButtonsEnabled}" ne fonctionne pas car mon DataTable n'a pas de colonne nommée "SelectButtonsEnabled". La propriété que j'essaye de lier est globale pour l'ensemble ViewModel, pas spécifique à une ligne du DataTable.

Je pense que j'ai besoin d'une balise RelativeSource, mais toutes mes tentatives ont échoué.

Merci.

Répondre

1

Eh bien, je ne sais pas si cela est la manière la plus succincte de le faire, mais cela fonctionne:

IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Path=DataContext.SelectButtonsEnabled}" 
Questions connexes