gpt4 book ai didi

c# - 当文本框为空或来自 xaml 的空格时禁用按钮

转载 作者:行者123 更新时间:2023-12-05 00:39:54 25 4
gpt4 key购买 nike

正如我的帖子所暗示的,我在 StackOverflow 上看到了一个帖子,用于在 xaml 中的 TextBox 文本为空时禁用按钮。但问题是,只要用户在不输入任何字符的情况下按空格键,按钮就会启用。如果 xaml 本身的 TextBox 中只有空格而没有任何文本,是否可以禁用该按钮。

<TextBox x:Name="txtReasonForChange" Grid.Row="0" Grid.Column="1" TextWrapping="Wrap" ScrollViewer.VerticalScrollBarVisibility="Auto"></TextBox>
<Button x:Name="btnSaveOrSaveAs" Grid.Row="2" Grid.Column="1" IsEnabled="{Binding ElementName=txtReasonForChange,Path=Text.Length}" HorizontalAlignment="Right" Click="btnSaveOrSaveAs_Click"></Button>

最佳答案

与使用按钮单击事件相比,我更喜欢使用 Command 属性并提供实现 ICommand 的类的 MVVM 方法。界面。然后,此类可以通过该接口(interface)的 CanExecute 和 CanExecuteChanged 部分指示它是否启用,这将启用和禁用按钮。但是,您只是在单击事件后面编写代码,所以...

添加一个新的转换器类。 (它只是一个实现 IConverter 接口(interface)的类。)然后在绑定(bind)中使用转换器。

 // In your converter class, which you could call IsNullOrWhiteSpaceConverter
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var input = (string)value;
return String.IsNullOrWhiteSpace(input);
}

在 XAML 的适当资源部分(例如,对于窗口或用户控件)声明转换器,如下所示:

<yourNamespace:IsNullOrWhiteSpaceConverter x:Key="IsNullOrWhiteSpaceConverter" />

那么你的绑定(bind)就变成了……

IsEnabled="{Binding ElementName=txtReasonForChange,Path=Text,
Converter={StaticResource IsNullOrWhiteSpaceConverter}}"

关于c# - 当文本框为空或来自 xaml 的空格时禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com