Wie man ein Textfeld Sichtbarkeit machen = Versteckt mit einem Trigger
-
08-07-2019 - |
Frage
Ich scheine eine harte Zeit heute zu haben. Alles, was ich tun möchte, ist ein TextBox
sichtbaren basierend auf einem Bool Wert Databound in seine gehosteten Fenstern versteckt machen.
Was habe ich einfach nicht kompilieren und ich verstehe nicht, warum. Bitte helfen.
<TextBlock Grid.Column="2" Text="This order will be sent to accounting for approval"
Foreground="Red" VerticalAlignment="Center" FontWeight="Bold" Padding="5">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AllowedToSubmit}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Lösung
Sie müssen die Style.TargetType
setzen um für sie die Visibility
Eigenschaft zu erkennen:
<TextBlock Grid.Column="2" VerticalAlignment="Center" FontWeight="Bold" Foreground="Red" Padding="5" Text="This order will be sent to accounting for approval">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AllowedToSubmit}" Value="True">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Ihr Bindungspfad muss AllowedToSubmit
wahrscheinlich ElementName
auf den Namen des Window
gesetzt haben, wie gut.
Andere Tipps
Eine weitere Option ist TextBlock.Visibility
direkt an der Immobilie zu binden:
<Window>
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisibility" />
</Window.Resources>
<TextBlock Visibility="{Binding Path=AllowedToSubmit, Converter={StaticResource BoolToVisibility}}" />
</Window>
Wenn Sie es wollen, wie in Ihrem Beispiel arbeiten, wo wahrt die TextBlock
verbirgt, dann können Sie Ihre eigenen Konverter schreiben Gegenteil von dem eingebauten in BooleanToVisibilityConverter
zu konvertieren.