TabControl Items Visibility
-
Hallo
Folgendes. Ich habe ein TabControl. Mit 3 unterschiedlichen Seiten definiert über Datatemplates. Das ganze funktioniert so weit.
Nun möchte ich gerne die einzelnen Tabs aus- bzw. einblenden über eine Property Namens Active vom Typ bool
Leider weiß ich nun überhaupt nicht woran ich die Active Property binden soll.
Ermöglicht habe ich es mir bisher über einen Setter im Style für ItemContainer:
<Setter Property="Visibility" Value="{Binding Active, Converter={StaticResource B2VConverter}}"/>
Da ich aber das Template nun in eine RessourceDictionary ausgelagert habe und dies wiederverwendbar sein soll, ist es schlecht darin das Binding auf das Active Property zu machen.
Welche Möglichkeit habe ich noch?
-
Auch wenn du es auslagerst kannst du dort wo es verwendet wird im ItemContainerStyle dieses Binding machen. Alle anderen bleiben dann davon unbeeinflusst.
-
Ja dass habe ich schon bemerkt. Aber das Problem ist ja wenn ich es an einer anderen Stelle verwenden möchte und dort die Visibility auf eine andere Property binden will. Active habe ich ja nicht überall zur Verfügung.
-
Im ausgelagerten Style bindest du es gar nicht, sondern nur dort wo es verwendet werden soll. So meinte ich des.
z.b.
Resources:
<Style x:Name="Hans" TargetType="{x:Type TabItem}"> <Setter Property="Background" Value="Pink" /> </Style>
Window1.xaml
<TabControl ItemsSource="{Binding Peter}"> <TabControl.ItemContainerStyle> <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource Hans}"> <Setter Property="Visibility" Value="{Binding Active, Converter={StaticResource BooleanToVisibilityConverter}}" /> </Style> </TabControl.ItemContainerStyle> </TabControl>
Window2.xaml
<TabControl ItemsSource="{Binding Bat}"> <TabControl.ItemContainerStyle> <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource Hans}"> <Setter Property="Visibility" Value="{Binding Man, Converter={StaticResource BooleanToVisibilityConverter}}" /> </Style> </TabControl.ItemContainerStyle> </TabControl>
-
Achso jetzt ist das klar. Danke!