8 votes

Wpf Style: Liaison à la propriété de l'enfant via ElementName

J'ai une application qui me donne l'option de changer le thème de l'application via un RessourceDictionary, ce qui signifie que je ne peux utiliser que du pur XAML.

Maintenant, ce que je veux faire, c'est cacher un DockPanel, qui n'a pas de ElementName, mais qui a un enfant avec une propriété x:Name.

         <Setter Property="Visibility" Value="{Binding RelativeSource={RelativeSource Self}, Path=Child.Visibility}"/>

Avec ce code, je récupère le premier enfant du DockPanel, mais je veux lier la valeur à l'enfant spécifique qui a un ElementName unique.

Ainsi, ce n'est pas chaque DockPanel qui disparaît, seulement celui qui a un enfant de type par exemple "TextBox" avec un ElementName de "MyTextBox".

Quelqu'un a une idée de comment faire ça? Merci ;-)

15voto

sine Points 1601

Ça marche, le DockPanel a une bordure comme Parent et avec ce code, je peux définir la visibilité de cette bordure sur Masquée !

        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Child.Children[2].Name}"
                         Value="SearchTextBox">
                <Setter Property="Visibility" Value="Hidden"/>
            </DataTrigger>
        </Style.Triggers>

Amélioration possible : Ne pas référencer le TextBox par Index, itérer à travers les enfants...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X