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>