[英]ControlTemplate DataTrigger is not fired in ItemsControl ControlTemplate
I have a NavigationMenuControl
with an ObservableCollection<HtNavigationMenuQuickLinkItem>
. 我有一个带有ObservableCollection<HtNavigationMenuQuickLinkItem>
的NavigationMenuControl
。 Everything is working fine, but the Style
on my HtMenuIcon
Control is not triggered. 一切工作正常,但未触发我的HtMenuIcon
控件上的Style
。 Where the Visibility
is changed correctly. 正确更改Visibility
位置。 Can someone please give me a hint where I have a mistake? 有人可以给我提示我哪里有错误吗? QuickLinkSymbol
is a DependencyProperty
of an Enum
. QuickLinkSymbol
是Enum
的DependencyProperty
。 I also want to put the Visibility Behavior into the DataTrigger
section. 我还想将“可见性行为”放入“数据DataTrigger
部分。
<Style TargetType="Navigation:HtNavigationMenu">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Navigation:HtNavigationMenu">
<Grid>
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=QuickLinkItems}"/>
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Navigation:HtNavigationMenuQuickLinkItem">
<Style.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Navigation:HtNavigationMenuQuickLinkItem">
<Controls:MyButton Width="40" Height="40" Margin="10,10,10,0">
<Viewbox Margin="3">
<Controls:HtMenuIcon x:Name="icon" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsQuicklink, Converter={StaticResource BoolToVis}}"/>
</Viewbox>
</Controls:MyButton >
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding QuickLinkSymbol, RelativeSource={RelativeSource TemplatedParent}}" Value="Home">
<Setter TargetName="icon" Property="Style" Value="{StaticResource Home}"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
You need to reference Home as {x:Static EnumNAmeSpace:EnumType.Home}. 您需要将Home引用为{x:Static EnumNAmeSpace:EnumType.Home}。
Oh, and if QuickLinkSymbol is a DepProp of HtNavigationMenuQuickLinkItem, 哦,如果QuickLinkSymbol是HtNavigationMenuQuickLinkItem的DepProp,
just use Trigger instead of DataTrigger. 只需使用Trigger而不是DataTrigger。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.