2011-02-14 3 views
0

J'ai un contrôle utilisateur que j'aimerais utiliser dans deux contextes différents. Le contrôle utilisateur a besoin que son DataContext soit défini sur une instance d'un ViewModel approprié qui a été créé par le parent view/viewmodel.Est-il possible de lier le DataContext d'un UserControl à une propriété

J'espérais quelque chose comme:

<local:Child DataContext="{Binding ChildViewModel}"/> 

où ChildViewModel est une propriété de style INPC-du ViewModel que la page est liée.

Cela ne semble pas fonctionner. Est-il possible d'affecter le DataContext en utilisant Binding?

+0

Pourriez-vous fournir des entrées à partir de la fenêtre de sortie? Fondamentalement, toutes les exceptions de liaison wpf sont montrés là, donc si vous en avez un, nous allons le vérifier – madcyree

Répondre

1

Il serait sans doute plus simple de lier le contenu d'un ContentControl à votre enfant ViewModel comme ceci:

<ContentControl Content="{Binding ChildViewModel}" /> 

..et alors un DataTemplate pour appliquer votre locale: Child View, comme celui-ci

<DataTemplate DataType="{x:Type local:ChildViewModel}"> 
    <local:Child /> 
</DataTemplate> 
+0

Suggestion intéressante, mais étant étiqueté une question Silverlight, cette solution ne fonctionnera pas. –

+0

Supprimez la propriété DataType sur le DataTemplate et cela devrait fonctionner dans Silverlight. –

Questions connexes