.net WPF数据绑定和验证规则最佳实践
我有一个非常简单的WPF应用程序,其中我使用数据绑定来允许编辑一些自定义CLR对象。我现在想在用户单击save时进行一些输入验证。然而,我读过的所有WPF书籍都没有真正为这个问题留出任何空间。我知道您可以创建自定义的ValidationRules,但我想知道这对于我的需求来说是否过于苛刻了.net WPF数据绑定和验证规则最佳实践,.net,wpf,data-binding,validation,.net,Wpf,Data Binding,Validation,我有一个非常简单的WPF应用程序,其中我使用数据绑定来允许编辑一些自定义CLR对象。我现在想在用户单击save时进行一些输入验证。然而,我读过的所有WPF书籍都没有真正为这个问题留出任何空间。我知道您可以创建自定义的ValidationRules,但我想知道这对于我的需求来说是否过于苛刻了 因此,我的问题是:是否有一个好的示例应用程序或文章可以演示在WPF中验证用户输入的最佳实践?我认为新的首选方法可能是使用IDataErrorInfo 阅读更多内容同时检查。据推测,微软发布了他们的模式和实践,
因此,我的问题是:是否有一个好的示例应用程序或文章可以演示在WPF中验证用户输入的最佳实践?我认为新的首选方法可能是使用IDataErrorInfo
阅读更多内容同时检查。据推测,微软发布了他们的模式和实践,其中涵盖了验证主题,但天知道为什么他们没有包括WPF的验证,所以我要告诉你的博客文章解释了作者是如何修改它的。希望这有帮助 就个人而言,我使用异常来处理验证。它需要以下步骤:
这里的技巧是只绑定到从DependencyObject派生的对象。INotifyPropertyChanged的简单实现不起作用-框架中存在一个bug,它阻止您访问错误集合 您可能对的BookLibrary示例应用程序感兴趣。它显示了如何在WPF中使用验证,以及在存在验证错误时如何控制“保存”按钮。来自MS: 数据验证和错误报告 您的视图模型或模型通常是 需要执行数据验证 并发出任何数据验证信号 视图中的错误,以便用户 我们可以采取行动纠正它们 Silverlight和WPF提供支持 用于管理数据验证错误 当改变个体时会发生这种情况 绑定到控件的属性 在视图中。对于单一属性 是绑定到控件的数据 视图模型或模型可以向数据发送信号 属性中的验证错误 通过拒绝传入的坏消息来设置setter 值并引发异常。如果 上的ValidatesOnExceptions属性 数据绑定是真的,数据 WPF和Silverlight中的绑定引擎 将处理异常并显示 一种视觉提示,提示用户存在 数据验证错误 但是,抛出异常 这样的属性应该是 尽可能避免。替代方案 方法是实施 IDataErrorInfo或INotifyDataErrorInfo 视图模型或模型上的接口 上课。这些接口允许您的 查看模型或要执行数据的模型 验证一个或多个属性 值并返回错误消息 添加到视图中,以便用户可以 已通知错误
文档接着解释了如何实现IDataErrorInfo和INotifyDataErrorInfo。如果您的UI直接使用您的业务类,则更倾向于使用IDataErrorInfo,因为它使逻辑更接近其所有者 如果您的业务类是通过引用WCF/XmlWeb服务创建的存根类,那么您不能/不得使用IDataErrorInfo,也不能将Exception与ExceptionValidationRule一起使用。相反,您可以:
- 使用自定义验证规则
- 在WPF UI项目中定义一个分部类并实现IDataErrorInfo