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



在我的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>

非常感谢对此的一些帮助

如果SelectedPathnullSelectedPath.Length == 0,您可以禁用该Button

<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>

最新更新