使用一个变量来设置TabItem的可见性
本文关键字:设置 TabItem 可见性 变量 一个 | 更新日期: 2023-09-27 18:12:29
在WPF中如何通过使用样式显示/隐藏TabItem取决于Int变量的值?
风格尝试
<Style x:Key="TabItemStyleVisibility"
TargetType="{x:Type TabItem}"
BasedOn="{StaticResource {x:Type TabItem}}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=TabItemIndex,
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}"
Value="1">
<Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
TabItem Xaml :
<TabItem Name="Tab1" Style="{StaticResource TabItemStyleVisibility}">
<<p> 交替尝试/strong> 可能是每个标签的样式(复制/粘贴),每次更改值:
<DataTrigger Binding="{Binding Path=TabItemIndex,
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}"
Value="1">
</DataTrigger>
但是它不会是干净的(每个TabItem一个样式)。
是否有一种方法来定义tabItem的可见性取决于tabItem的名称或依赖于一个int,并有相同的样式为每个tabItem ?
您可以使用转换器来做到这一点,这里有一个关于如何做到这一点的示例(未经测试)
class MyConverter : IValueConverter //Implement this one
{
public object Convert(object state....)
{
string name = (string)state;
if(name == "something")
return Visiblity.Visible;
else return Visibilty.Hidden;
}
}
<Grid.Resources>
<myConverterNamespace:MyConverter x:Key = "myConverter"/>
</Grid.Resource>
<TabItem Name="Tab1" Style="{StaticResource TabItemStyleVisibility}"
Visbility={Binding ElementName="someTabItemName" Path="Name" Converter={StaticResource myConverter}}>
我知道我做错了什么,我试图工作的可见性,我所要做的就是工作在SelectedIndex