web-dev-qa-db-fra.com

WPF se lier à lui-même

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

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

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

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

77
Snake

Réponse courte: {Binding} n'est pas pas un raccourci pour "se lier à lui-même" (au sens de RelativeSource.Self ). Plutôt, {Binding}équivaut à{Binding Path=.}, qui se lie à la source actuelle.


Élaborer: Une liaison a une source et un chemin . Vous pouvez faire une "liaison à lui-même", par exemple, en utilisant

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

Cependant, cela définit la source sur le contrôle lui-même, il essaiera donc d'accéder à la propriété x du contrôle UI (plutôt que propriété x du contexte de données actuel). D'après 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 {Binding} Est-ce que: {Binding} conserve la source telle qu'elle est (généralement le DataContext d'un élément parent) et se lie à la source elle-même (équivalent à Path=.).

228
Heinzi