C# WPF-从触发器访问子级

C# WPF-从触发器访问子级,c#,wpf,listbox,styles,itemcontainerstyle,C#,Wpf,Listbox,Styles,Itemcontainerstyle,我有一个列表框声明,就像我在下面显示的那样。关键是在项目定义中,我有很多关于网格和元素的东西。我只想更改项目中一个图像的可见性,使其仅在选中元素本身时可见 例如,我成功地更改了选定项目时项目的背景和总体外观,但我无法访问内部元素:( 我尝试使用: <Setter TargetName="physiciansSettinsImage" Property="Visibility" Value="Visible"/> 但它不能在样式设定器上设定。有什么线索吗 整个设计相当复杂,因

我有一个
列表框
声明,就像我在下面显示的那样。关键是在项目定义中,我有很多关于网格和元素的东西。我只想更改项目中一个图像的可见性,使其仅在选中元素本身时可见

例如,我成功地更改了选定项目时项目的背景和总体外观,但我无法访问内部元素:(


我尝试使用:

<Setter TargetName="physiciansSettinsImage" Property="Visibility" Value="Visible"/>

但它不能在样式设定器上设定。有什么线索吗


整个设计相当复杂,因此我希望尽量避免重新编码。

将触发器移动到
DataTemplate

我想image1
可见性
折叠的

<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource=
        {RelativeSource Mode=FindAncestor, AncestorType=
            {x:Type ListBoxItem}},Path=IsSelected}" Value="True">
        <Setter TargetName="image1" Property="Visibility" Value="Visible"/>
    </DataTrigger>
</DataTemplate.Triggers>


现在,当选择该项目时,您的
图像的可见性
设置为
可见

如此甜美,兄弟。快速而干净。我不得不承认,整个事情对我来说有点困惑,但是..一点一点:)
<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource=
        {RelativeSource Mode=FindAncestor, AncestorType=
            {x:Type ListBoxItem}},Path=IsSelected}" Value="True">
        <Setter TargetName="image1" Property="Visibility" Value="Visible"/>
    </DataTrigger>
</DataTemplate.Triggers>