我有一个应用程序,它提供了通过RessourceDictionary更改Application-Theme的选项,这意味着我只能使用纯XAML。
现在,我想要做的是隐藏一个没有ElementName的DockPanel,但它有一个带有x:Name属性的Child。
<Style TargetType="DockPanel">
<Setter Property="Visibility" Value="{Binding RelativeSource={RelativeSource Self}, Path=Child.Visibility}"/>
</Style>
使用此代码我得到DockPanel的第一个孩子, 但我想将值绑定到具有唯一ElementName的特定Child。
因此,不是每个DockPanel都会消失,只有具有Child of Type的那个,例如“TextBox”,元素名称为“MyTextBox”。
任何人都有一个想法如何做到这一点?谢谢; - )
答案 0 :(得分:13)
有了它的工作,DockPanel有一个Border作为Parent,使用这个Code我可以设置这个Border的Visibility隐藏!
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Child.Children[2].Name}"
Value="SearchTextBox">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
可能的改进:不要引用每个索引的TextBox,遍历子项......