通过XAML验证WPF文本框数据

时间:2012-04-05 08:12:19

标签: c# wpf visual-studio-2010 xaml

  

可能重复:
  Validation in textbox in 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 EXCLUSIVELY来实现吗?我正在尝试最小化我的.cs文件

2 个答案:

答案 0 :(得分:3)

如果将TextBox的Text属性的值绑定到int,您将获得一种验证,因为您将无法将MyInt的值设置为除int之外的任何值(和如果尝试,TextBox边框将变为红色。

在XAML中:

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

在演示者中:

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

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

答案 1 :(得分:0)

就像你不能使用纯HTML来完成这项工作一样,你不能只使用XAML(据我所知)。我得到了整体“少即是多”的理念,但在这种情况下,你至少需要一些代码,例如:正则表达式,用于验证输入。