2009-12-15 4 views
64

J'ai un WPF Window, et quelque part il y a un ListView où je lie un List<string> à.WPF Lier à lui-même

Maintenant, quelque part dans mon ListView il y a un TextBox et la propriété est définie sur Content{Binding}.

Mais c'est le raccourci. Comment écrire la liaison complète pour se lier à elle-même?

{Binding Path=Self} ne fonctionne pas, pas plus que {Binding Self} (où ce dernier est un raccourci pour le premier).

+0

Je tiens à mentionner à un poste lié à ce sujet.La réponse ci-dessus est totalement correcte, mais il y a un point qui complète la réponse ci-dessus. Voici le [lien] (http://stackoverflow.com/questions/11995318/how-do-i-bind-to-relativesource-self). – AAAA

Répondre

202

Réponse courte: {Binding} est pas un raccourci pour « lier à lui-même » (au sens de RelativeSource.Self). Au contraire, {Binding}is equivalent to{Binding Path=.}, qui se lie à la source actuelle.


Pour élaborer: Une liaison a une sourceet un chemin . Vous pouvez faire un « liant à lui-même », par exemple, en utilisant

<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" /> 

Ceci, cependant, définit le contrôle lui-même la la source, il essayera d'accéder à la propriété x du contrôle de l'interface utilisateur (plutôt que la propriété x du contexte de données actuel). De la façon dont j'ai compris votre question, ce n'est pas ce que vous voulez; en particulier, ce n'est pas ce que fait {Binding}: {Binding} conserve la source telle quelle (généralement le DataContext de certains éléments parents) et se lie à la source elle-même (équivalent à Path=.).

+1

Merci beaucoup! – Snake

+1

Bonne réponse, je vous donnerais +2 si je pouvais. –

+0

Quelle bonne réponse! –

Questions connexes