10
votes

Lier à une propriété du DataContext d'un autre contrôle

iv'e a 2 panneaux dans un jeu d'applications

Ils sont tous deux liés à différents éléments. xxx

* Le jeu a une propriété de tour * . xxx

Maintenant, je dois lier l'un des gamboardPanel à la valeur du tour de la propriété,

* Par exemple: quelque chose sur les lignes de * xxx

Comment puis-je refléter gamefetailspanel.dataContext dans ma liaison?


0 commentaires

3 Réponses :


5
votes

Je vous recommanderais de disposer de vos propriétés de jeu et de gameboard sur un modèle de visualisation de wrapper, puis de régler le DataContext de votre vue sur le modèle de vue Wrapper. De cette façon dans la liaison de votre bouton de votre bouton, vous pouvez simplement référencer la propriété appropriée sur votre modèle de vue: xxx

Toutefois, pour plus de scénarios unique, vous pouvez utiliser l'attribut de liaison relative à la source et accrocher un autre élément Contexte de données, comme dans cet exemple: Accès parent DataContext de DaTatemplate


2 commentaires

Oui, j'ai pensé que je pensais juste que je pouvais peut-être travailler autour de cela parce que je n'en ai pas besoin que pour cet endroit spécifique.


Consultez mon édition ci-dessus pour une autre option si vous recherchez une simple liaison unique.



20
votes

Pour le bénéfice des chercheurs, vous pouvez lier au DataContext d'un autre contrôle comme détaillé ici .

La solution rapide dans mon cas ressemblait à: p>

<TextBlock Text="{Binding ElementName=ucClientDetails, 
                          Path=DataContext.FullName}"></TextBlock>


0 commentaires

2
votes

Utilisez simplement

<Button Fill="{Binding ElementName=GameDetailsPanel,Path=DataContext.Turn}"></Button>


0 commentaires