我有一个NavigationMenuControl和一个ObservableCollection<HtNavigationMenuQuickLinkItem>。一切正常,但是我的HtMenuIcon控件上的HtMenuIcon没有被触发。正确更改Visibility的位置。谁能给我一个提示一下我哪里出错了吗?QuickLinkSymbol是DependencyProperty of a Enum。我还想将可见性行为放到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>QuickLinkItem
<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>发布于 2017-03-20 09:35:40
您需要将Home引用为{x:静态EnumNAmeSpace:EnumType.Home}。
哦,如果QuickLinkSymbol是DepProp of HtNavigationMenuQuickLinkItem,
只需使用触发器而不是DataTrigger。
https://stackoverflow.com/questions/42898718
复制相似问题