如何通过DataBinding/Triggers有选择地设置TabItem的"可见性"

Tim*_*uri 6 data-binding wpf eventtrigger

如果属性(BlahType)设置为1并且显示为设置为0,我有一个应该隐藏的标签页.这就是我想要做的事情:

<TabItem Header="Blah">
    <TabItem.Triggers>
        <DataTrigger Binding="{Binding BlahType}" Value="0">
            <Setter Property="TabItem.Visibility" Value="Hidden" />
        </DataTrigger>
    </TabItem.Triggers>
</TabItem>
Run Code Online (Sandbox Code Playgroud)

问题是,我收到此错误:

"Triggers collection members must be of type EventTrigger"
Run Code Online (Sandbox Code Playgroud)

如果你谷歌那个错误,你会看到WPF博士解释错误.有没有一种干净的方式来做我想在这里实现的目标?

Dav*_*ury 13

我相信控件的Triggers集合目前只支持EventTriggers.如果您想使用DataTrigger,只需将其放在样式中,例如:

<TabItem Header="Blah">
    <TabItem.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding BlahType}" Value="0">
                    <Setter Property="TabItem.Visibility" Value="Hidden" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TabItem.Style>
</TabItem>
Run Code Online (Sandbox Code Playgroud)