wpf mvvm textbox 输入验证1到10

耗子哭死猫 2019-06-19 02:50:51
    <TextBox x:Name="textBox"
TextWrapping="Wrap"

Text="{Binding Number}"
Width="200" Height="50"/>
//后台绑定
public MainWindow()
{
InitializeComponent();
DataContext = new Class1();
}

      private int? number;
[Range(1, 10, ErrorMessage = @"错误")]
public int? Number { get => number; set => number = value; }

Range 不起作用。还有什么办法来限制textbox输入其他数字。
...全文
214 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT流水兵 2019-06-20
  • 打赏
  • 举报
回复
我习惯用这种方法,感觉其他方式像正则啊啥的,都有点问题

private void text_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) ||
                (e.Key >= Key.D0 && e.Key <= Key.D9) ||
                e.Key == Key.Back || e.Key == Key.Subtract ||
                e.Key == Key.Left || e.Key == Key.Right || )
            {
                if (e.KeyboardDevice.Modifiers != ModifierKeys.None)
                {
                    e.Handled = true;
                }
            }
            else
            {
                e.Handled = true;
            }
        }
ccvah 2019-06-19
  • 打赏
  • 举报
回复
类似这种 ,如果有多个判断,可以写一个函数,在属性里面调用一下判断函数就可以
ccvah 2019-06-19
  • 打赏
  • 举报
回复
在你绑定属性里面进行判断.
OrdinaryCoder 2019-06-19
  • 打赏
  • 举报
回复
笨方法在TextChanged事件里监控输入
耗子哭死猫 2019-06-19
  • 打赏
  • 举报
回复
Text="{Binding Number,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 不管用,
OrdinaryCoder 2019-06-19
  • 打赏
  • 举报
回复
[Range(1, 10, ErrorMessage = @"错误")]这种验证没用过 是C#几的
从你代码上看验证不好使有可能是没绑定上Text="{Binding Number,Model = "TwoWay"}"试一下

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧