Voici ma situation. J'ai une vue et un ViewModel. Le DataContext de la vue est défini sur ViewModel. En raison de l'utilisation d'un contrôle tiers, je suis obligé de mettre du code dans le code-behind. Dans le code-behind je crée un objet appelé StraightConnectorTool.Liaison d'un contrôle lorsque la vue est liée à un ViewModel?
Dans ma vue, j'ai besoin de lier cet objet. Si le DataContext de View est défini dans le code-behind:
DataContext = this;
La liaison suivante fonctionne correctement.
<BarItemToolBehavior ActiveTool="{Binding ActiveTool, ElementName=diagram, Mode=TwoWay}"
Tool="{Binding StraightConnectorTool}"/>
Lorsque diagramme est le nom du contrôle tiers sur View et ActiveTool est l'une de ses propriétés. Toutefois, si le DataContext de View est défini sur ViewModel, la liaison ne fonctionne pas. Je suis bloqué en essayant de comprendre comment lier à la vue quand DataContext est défini sur le ViewModel. Des idées?
'this.DataContext = this;' est le cancer de WPF MVVM. [Cet article explique pourquoi] (http://blog.scottlogic.com/2012/02/06/a-simple-pattern-for-creating-re-useable-usercontrols-in-wpf-silverlight.html) remarquez que c'est un peu long, mais la chimiothérapie aussi. – Will