gpt4 book ai didi

c# - ControlTemplate DataTrigger 未在 ItemsControl ControlTemplate 中触发

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:33 25 4
gpt4 key购买 nike

我有一个 NavigationMenuControlObservableCollection<HtNavigationMenuQuickLinkItem> .一切正常,但是 Style在我的 HtMenuIcon不触发控制。 Visibility在哪里被正确更改。有人可以给我提示我哪里有错误吗? QuickLinkSymbolDependencyPropertyEnum .我还想将可见性行为放入 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>

最佳答案

您需要将 Home 引用为 {x:Static EnumNAmeSpace:EnumType.Home}。

哦,如果 QuickLinkSymbol 是 HtNavigationMenuQuickLinkItem 的 DepProp,

只需使用 Trigger 而不是 DataTrigger。

关于c# - ControlTemplate DataTrigger 未在 ItemsControl ControlTemplate 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42898718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com