我怎样才能选择通过数据绑定/触发条件设定一个的TabItem的“能见度”

StackOverflow https://stackoverflow.com/questions/302312

  •  08-07-2019
  •  | 
  •  

我有,如果属性(BlahType)被设置为1,并且如果设置为0。这表明,应该被隐藏标签页就是我 WANT 做:

<TabItem Header="Blah">
    <TabItem.Triggers>
        <DataTrigger Binding="{Binding BlahType}" Value="0">
            <Setter Property="TabItem.Visibility" Value="Hidden" />
        </DataTrigger>
    </TabItem.Triggers>
</TabItem>

的问题是,我得到这个错误:

"Triggers collection members must be of type EventTrigger"

如果你谷歌的错误,你会看到的博士。 WPF解释了错误。有没有干净的方式做什么,我想在这里实现?

有帮助吗?

解决方案

我认为一个控制的触发器集合只目前支持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>

其他提示

那么,你不能这样做,使用触发器(未除非你是里面一个DataTemplate,的ControlTemplate或风格)。

您可以使用绑定做到这一点,你需要编写一个自定义ValueConverter将0/1之间转换成可见光/隐藏,然后你可以Visibility属性绑定到BlhaType属性。

或者你也可以在代码中设置的知名度和在XAML为基础的方法放弃(这是什么我会做)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top