Réponse courte : {Binding}
n'est pas un raccourci pour «se lier à lui-même» (au sens de RelativeSource.Self ). Au contraire, {Binding}
équivaut à {Binding Path=.}
, qui se lie à la source actuelle.
Pour élaborer : Une liaison a une source et un chemin . Vous pouvez effectuer 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, de sorte qu'il essaie d'accéder à la propriété x
du contrôle d'interface utilisateur (plutôt qu'à la 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 qui {Binding}
fait: {Binding}
conserve la source telle qu'elle est (généralement celle DataContext
d'un élément parent) et se lie à la source elle-même (équivalent à Path=.
).