问个wpf ,MvvmLight数据绑定问题

yeakon 2019-12-14 06:23:43

public class TestModel : ViewModelBase
{
private int _Height;
/// <summary>
///
/// </summary>
public int Height{get { return _Height; } set { _Height= value; RaisePropertyChanged("Height"); }}
}


我定义一个model,用于数据绑定,然而在用户输入的时候,可能会输入string类型的,数据库的Height是int?类型,允许为空,在提交保存的时候,在Mvvm模式下,假如用户输入中文,文本输入框虽然会变红,但是,还会执行后面的数据保存代码,因为ViewModelBase检测错误的时候,强行改成Height=0,继续执行数据库保存代码,把数据Height=0保存到数据库中,因为用户输入了中文,但是没有任何提示,程序执行成功,数据库保存了Height=0,怎么截取到输入错误,提示,并不执行数据保存操作?
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2019-12-17
  • 打赏
  • 举报
回复
假如用户输入中文,文本输入框虽然会变红 -》在PreviewTextInput或者KeyDown事件中使用正则表达式判断输入并设置Handle值即可。
Eason0807 2019-12-15
  • 打赏
  • 举报
回复
WPF处理输入验证的方法比较多,MVVM模式下可以用IDataErrorInfo ,也就是再Model上实现这个接口 其他的还有 ValidationRule 验证(大型项目不推荐,要写一堆ValidationRule ,Xaml上也要写一堆绑定),还可以在自定义控件内部实现输入验证;

110,534

社区成员

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

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

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