我对如何在下面的设置中最佳地执行验证有疑问。
我有一个基于WPF的小UI(使用WAF框架)。此特定对话框包含DecimalUpDown
控件(来自WPF扩展工具包),用户可以使用向上/向下箭头或键入或粘贴来修改值。
不应允许用户继续(应禁用“下一步”按钮),直到提供有效数字(格式和范围)。用户还应该意识到这个字段的价值在于阻止它们继续运行。 如何执行此验证?
我有一个非常简单的视图模型 - 它包含一个float FooValue
属性(绑定到向上/向下控件)并实现父容器绑定的bool IsValid()
(对于{{1按钮的启用状态)。
我注意到其他一些网站建议我应该在setter中抛出异常(例如http://www.codeproject.com/Articles/15239/Validation-in-Windows-Presentation-Foundation)。这里没有任何意义,因为我的财产是Next
。是否应该绑定到数字向上/向下的“Text”值并在View Model级别进行解析(并抛出异常)?
答案 0 :(得分:0)
在waf.codeplex.com上,实际上有一个示例显示了如何进行数据输入验证 - http://www.codeplex.com/Download?ProjectName=waf&DownloadId=282750。它使用的是BookLibrary示例应用程序,它包含在框架源代码中。
基本上,您将在属性上使用数据注释,并在XAML元素上使用ValidatesOnDataErrors=true
属性。