WPF Lié à lui-même



data-binding binding (1)

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

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

Mais c'est la sténographie. 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).


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

Pour élaborer : Une liaison a une source et un chemin . Vous pouvez faire une "liaison à soi", 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, de sorte qu'il essayera d'accéder à la propriété x du contrôle de l'interface utilisateur (plutôt qu'à 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 qu'elle est (généralement le DataContext d'un élément parent) et se lie à la source elle-même (équivalent à Path=. ).





self