0
我有一个文本框,其Text
属性绑定到视图模型中的整数属性。如果用户输入的文本是整数,WPF会自动进行验证。这个功能对我来说很好,所以我不需要构建额外的验证。视图模型中验证错误的意识
现在我有一个按钮,其Command
属性绑定到相同视图模型中的命令,并且如果有任何验证错误,我希望CanExecute
该命令的方法返回false。
在视图模型中是否有可能知道是否存在任何验证错误?
我有一个文本框,其Text
属性绑定到视图模型中的整数属性。如果用户输入的文本是整数,WPF会自动进行验证。这个功能对我来说很好,所以我不需要构建额外的验证。视图模型中验证错误的意识
现在我有一个按钮,其Command
属性绑定到相同视图模型中的命令,并且如果有任何验证错误,我希望CanExecute
该命令的方法返回false。
在视图模型中是否有可能知道是否存在任何验证错误?
我想提出这样的:
HasErrors
属性添加到您的视图模型。HasErrors
属性设置为true 是否有错误或者如果没有错误,则将其设置为false。CanExecute
方法:检查HasErrors
财产此步骤实现INotifyDataErrorInfo
界面的上方至简体版本(见this文章),将其引入.NET 4.5。
如果你喜欢,你也可以完全实现这个接口,如链接文章所述,但我认为这比你需要的更多。
使用INotifyDataErrorInfo
您可以为每个属性设置和检索错误列表,但这似乎不是您的情况的要求,这就是为什么我只提供了一个更简单的示例,只有一个标志HasErrors
。
最简单的把整数属性设为可空'int?'然后检查HasValue中是否可以执行 – cleftheris
http://stackoverflow.com/questions/30025757/inotifydataerrorinfo-and-binding-exceptions/30030623#30030623 – blindmeis
你会必须使用^或添加代码并告诉我们如何实现整数属性的验证。 'int?'可能无法正常工作,因为如果无效,您的验证可能不会更新您的支持属性。 – Kcvin