我有一个应用程序,它让我可以选择通过 RessourceDictionary 更改应用程序主题,这意味着我只能使用纯 XAML。
现在,我想做的是隐藏一个 DockPanel,它没有 ElementName,但它有一个带有 x:Name 属性的 Child。
<Style TargetType="DockPanel">
<Setter Property="Visibility" Value="{Binding RelativeSource={RelativeSource Self}, Path=Child.Visibility}"/>
</Style>
有了这个代码,我得到了 DockPanel 的第一个 child ,
但我想将该值绑定(bind)到具有唯一 ElementName 的特定子级。
因此,并非每个 DockPanel 都会消失,只有具有 Child 类型的 DockPanel 会消失,例如元素名称为“MyTextBox”的“TextBox”。
任何人都有一个想法如何做到这一点?谢谢 ;-)
最佳答案
得到它的工作 DockPanel 有一个边框作为父级,使用此代码,我可以将此边框的可见性设置为隐藏!
<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>
可能的改进:不要引用每个索引的文本框,遍历子...
关于Wpf 样式 : Binding to Child Property via ElementName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983258/