How can I toggle a TextBlock's visibility in a DataTrigger?
You're setting the Visibility on the TextBlock and then trying to override it with a style. That won't work. Try this:
<Window x:Class="TestCollapsed.Views.MainView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="clr-namespace:TestCollapsed.Commands" Title="Main Window" Height="400" Width="800"> <Window.Resources> <Style x:Key="DropDownStyle" TargetType="TextBlock"> <Setter Property="Visibility" Value="Collapsed"/> <Style.Triggers> <DataTrigger Binding="{Binding ControlType}" Value="dropDown"> <Setter Property="Visibility" Value="Visible"/> </DataTrigger> </Style.Triggers> </Style> </Window.Resources> <StackPanel> <TextBlock Text="This is going to be the dropdown control." Style="{StaticResource DropDownStyle}"/> </StackPanel></Window>
I have the same problem. @Bryan's answer is perfect!There are the wrong and right versions.The wrong version:
<TextBlock Text="1999-09-09 16:08" VerticalAlignment="Top" Visibility="Collapsed"> <TextBlock.Style> <Style BasedOn="{StaticResource TipTextYellow}" TargetType="TextBlock"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=Alcohol,Path=IsFocused}" Value="True"> <Setter Property="Visibility" Value="Visible"/> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock>
The right version:
<TextBlock Text="1999-09-09 16:08" VerticalAlignment="Top"> <TextBlock.Style> <Style BasedOn="{StaticResource TipTextYellow}" TargetType="TextBlock"> <Setter Property="Visibility" Value="Collapsed"/> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=Alcohol,Path=IsFocused}" Value="True"> <Setter Property="Visibility" Value="Visible"/> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock>