1

可能重复:
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 文件

4

2 回答 2

3

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

在 XAML 中:

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

在演示者中:

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

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

于 2012-04-05T08:35:09.423 回答
0

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

于 2012-04-05T08:22:22.017 回答