通过XAML验证WPF文本框数据

本文关键字:数据 文本 WPF XAML 验证 通过 | 更新日期: 2023-09-27 18:30:09

可能重复:
WPF 中文本框中的验证

我目前正在使用此代码创建一个仅限数字的文本框

Xaml

<TextBox Height="22" HorizontalAlignment="Left" Margin="192,118,0,0" Name="Unit_ID"  VerticalAlignment="Top" Width="173" PreviewTextInput="UnitID_PreviewTextInput" TextInput="Unit_ID_TextInput" TextChanged="Unit_ID_TextChanged" /> 

和C#码尾

 private void UnitID_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            foreach (char c in e.Text)
                if (!Char.IsDigit(c))
                {
                    e.Handled = true;
                    break;
                }

是否可以通过独占使用XAML来实现这一点?我正在尝试最小化我的.cs文件

通过XAML验证WPF文本框数据

如果您将TextBox的Text属性的值绑定到int,您将获得某种验证,因为您将无法将MyInt的值设置为int以外的任何值(如果尝试,TextBox边界将变红)。

在XAML中:

<TextBox Text="{Binding MyInt}"/>

在演示者中:

public class MyPresenter : INotifyPropertyChanged
{
    public int MyInt { get; set; }
    // ...
}

并将XAML的DataContext设置为MyPresenter的实例。

就像你不能使用纯HTML来完成这项工作一样,你也不能只使用XAML(据我所知)。我理解"少即是多"的理念,但在这种情况下,您至少需要一些代码,例如Regex,来验证输入。