C# 根据文本框中的内容设置触发器以启用按钮

C# 根据文本框中的内容设置触发器以启用按钮,c#,wpf,xaml,isenabled,C#,Wpf,Xaml,Isenabled,在我的WPF应用程序中,我有一个部分,其中有一个文本框,显示用户设置的路径。我在文本框旁边有一个按钮,以便在单击时清除文本框。虽然这个功能运行良好,但我正在尝试添加一个样式,默认情况下,该样式将保持“删除”按钮处于禁用状态,但如果文本框包含值,则该样式将处于启用状态 我完全不明白我可以在数据触发器中使用什么来区分文本框及其值。这是我尝试过的,在这个实现中,删除按钮默认设置为禁用 <TextBox x:Name="Path" Widt

在我的WPF应用程序中,我有一个部分,其中有一个文本框,显示用户设置的路径。我在文本框旁边有一个按钮,以便在单击时清除文本框。虽然这个功能运行良好,但我正在尝试添加一个样式,默认情况下,该样式将保持“删除”按钮处于禁用状态,但如果文本框包含值,则该样式将处于启用状态

我完全不明白我可以在数据触发器中使用什么来区分文本框及其值。这是我尝试过的,在这个实现中,删除按钮默认设置为禁用

<TextBox x:Name="Path" 
                            Width="250"
                            Text="{Binding Path=SelectedPath, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" 

                            FontStyle="Italic"
                            TextWrapping="NoWrap"
                            VerticalAlignment="Center"
                            Margin="0,0,4,4"
                            IsReadOnly="True"/>

<GeometryButton
                    Command="{Binding RemovePath}"
                    Geometry="{StaticResource {x:Static FolderDeleteIcon}}"
                    Width="30"
                    Height="30"
                    Style="{StaticResource DeleteButton}"
                    />

这是我在删除图标中使用的样式

<Style x:Key="DeleteButton" TargetType="GeometryButton">
                <Setter Property="IsEnabled" Value="False" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=SelectedPath}" Value="0">
                        <Setter Property="IsEnabled" Value="False" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>


如果
SelectedPath
null
SelectedPath.Length==0,您可以禁用
按钮

<Style x:Key="DeleteButton" TargetType="dc:GeometryButton">
    <Setter Property="IsEnabled" Value="True" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=SelectedPath}" Value="{x:Null}">
            <Setter Property="IsEnabled" Value="False" />
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=SelectedPath.Length}" Value="0">
            <Setter Property="IsEnabled" Value="False" />
        </DataTrigger>
    </Style.Triggers>
</Style>