Datatrigger上的空字符串

Gif*_*fen 17 c# data-binding wpf

DataTrigger如何根据绑定字符串更改stackpanel的可见性?我有以下Xaml

<StackPanel HorizontalAlignment="Right" 
            Orientation="Horizontal" 
            Grid.Column="1"
            Background="#FF7a7a7a">
    <StackPanel.Style>
        <Style TargetType="{x:Type StackPanel}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SearchText}" Value="">
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </StackPanel.Style>
    Content....
   </StackPanel>
Run Code Online (Sandbox Code Playgroud)

我知道,SearchText获取更新并在之外正确绑定StackPanel

有人能指出我正确的方向吗?

Fed*_*gui 28

这个:

<DataTrigger Binding="{Binding SearchText}" Value="">
   <Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

将用于空字符串(""),但它不起作用null.

DataTrigger为null情况添加另一个:

<DataTrigger Binding="{Binding SearchText}" Value="{x:Null}">
   <Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

  • 如果将以下内容添加为绑定表达式"TargetNullValue ='"的一部分,则可以将两个触发器合并为一个 (8认同)

Buz*_*zzy 6

在XAML中正确使用String.Empty:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
<DataTrigger Binding="{Binding SearchText}" Value="{x:Static sys:String.Empty}">
Run Code Online (Sandbox Code Playgroud)