Wpf 样式 : Binding to Child Property via ElementName

标签 wpf xaml

我有一个应用程序,它让我可以选择通过 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/

相关文章:

c# - MVVM 在单击时更改网格的背景颜色

c# - 如何在 wpf 中显示完整的 Expander Grid?

c# - 从代码背后在Viewmodel中设置属性

wpf - 将字符串定义为静态资源

c# - 尝试从代码隐藏加载 xaml 时出现 xaml 解析异常

c# - 旋转一个矩形

wpf - 如何为多个鼠标悬停事件创建单一样式?

c# - 有没有一种好方法将 xaml 绑定(bind)到依赖于多个其他属性的属性?

WPF DataGrid RowHeader 数据绑定(bind)

c# - Xamarin 自定义 TableView header