c# - 根据 xaml 中的文本框禁用/启用按钮

标签 c# xaml uwp uwp-xaml

我有一个文本框

<TextBox x:Name="searchTextBox" Width="200" Height="30" HorizontalAlignment="Left"/>

和两个按钮

<Button x:Name="previous" Style="{StaticResource AppBarButtonStyle}" Tapped="OnOptionItemTapped" IsEnabled="False">
    <Image Source="/Assets/images/left_arrow.png"/>
</Button>
    <Button x:Name="next" Style="{StaticResource AppBarButtonStyle}"  Tapped="OnOptionItemTapped" IsEnabled="False">
    <Image Source="/Assets/images/right_arrow.png"/>
</Button>

是否有通过文本框启用/禁用按钮的简单解决方案?

例如,如果 TextBox 为空,则按钮将被禁用。如果 TextBox 不为空,则启用按钮。

最佳答案

您可以应用文本更改事件,在每次更改时检查输入。

<TextBox x:Name="searchTextBox" Width="200" Height="30" HorizontalAlignment="Left" TextChanged="TextBox_TextChanged" />

如果文本符合您的需要,您可以启用/禁用按钮。

public void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    if (searchTextBox.Text == result)
        next.IsEnabled = false;
}

编辑:除了类似这种方法的代码隐藏之外,您还可以了解 MVVM 设计模式。其他答案部分使用了 MVVM 中常见的做法。

网络上有各种很好的教程。

关于c# - 根据 xaml 中的文本框禁用/启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51740336/

相关文章:

windows-phone-7 - 当内容高度 > 2000px 时 WP7 ScrollViewer Bug

wpf - 手动实例化 DataTemplate?

c# - 我如何找到 RestSharp PUT 抛出异常的原因?

javascript - 单击 XBox 上的输入字段时以编程方式调出键盘 - UWP 应用程序 (JS)

c# - 将代理对象克隆到当前 AppDomain

C# 如何阻止代码在集合序列化期间循环导致计算器溢出?

c# - Entity Framework 中的多对多关系有效

wpf - 通过 setter v ContentTemplate 设置内容样式

xamarin - Windows运行时元数据在SDK中无效-ITIL00005

c# - ASP.NET MVC Razor 将模型传递给布局