首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ControlTemplate DataTrigger不在ItemsControl ControlTemplate中被解雇

ControlTemplate DataTrigger不在ItemsControl ControlTemplate中被解雇
EN

Stack Overflow用户
提问于 2017-03-20 08:21:14
回答 1查看 83关注 0票数 1

我有一个NavigationMenuControl和一个ObservableCollection<HtNavigationMenuQuickLinkItem>。一切正常,但是我的HtMenuIcon控件上的HtMenuIcon没有被触发。正确更改Visibility的位置。谁能给我一个提示一下我哪里出错了吗?QuickLinkSymbolDependencyProperty of a Enum。我还想将可见性行为放到DataTrigger部分中。

导航菜单

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 09:35:40

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

哦,如果QuickLinkSymbol是DepProp of HtNavigationMenuQuickLinkItem,

只需使用触发器而不是DataTrigger。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42898718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档