【问题标题】:ValidationSummary to show non-form validationValidationSummary 显示非表单验证
【发布时间】:2011-10-05 10:46:48
【问题描述】:

我正在编写一个 Silverlight 屏幕,它从文件中获取用户输入,解析文件并将任何验证错误显示在屏幕上。文件中的数据从不显示,屏幕的目的纯粹是为了验证反馈。

我决定创建一个实现 INotifyDataErrorInfo 的 ViewModel,在我看来,我将使用 ValidationSummary 控件来显示这些错误。

我这样做的想法是,ValidationSummary 控件会监听我的 ViewModel 上的 INotifyDataErrorInfo.ErrorsChanged 事件,并会随着 ViewModel 状态的变化而相应地更新自己。

不幸的是,它不起作用。

如果我将一个 TextBox 添加到我的 View 并将它绑定到我的 ViewModel 上的一个属性...由于更改 TextBox 中的值而发生的任何验证错误都会出现在摘要中 - 这很好地证实了我有正确实现了 INotifyDataErrorInfo。

ValidationSummary 控件是否真的依赖 UI 交互/绑定来显示错误?

不管 UI 是如何构成的,它都应该监听来自 INotifyDataErrorInfo 的任何消息的假设是否正确?

提前感谢您的帮助。

【问题讨论】:

    标签: silverlight validation silverlight-4.0


    【解决方案1】:

    ValidationSummary 控件需要与要验证的控件位于同一容器中才能显示错误。我没有成功显示实体级验证,也没有找到关于这个主题的太多信息。

    据我了解 - 您需要创建自己的验证摘要控件来侦听事件并绑定到错误源。

    【讨论】:

    • 链接已损坏 - 问题已删除?
    • 是的,问题已被删除 - 没有回复
    • 这正是我们最终所做的。
    【解决方案2】:

    我认为出于这些原因使用INotifyDataErrorInfo 的目的是不正确的。这是 MSDN 所说的:

    定义数据实体类可以实现以提供的成员 自定义同步和异步验证支持。 INotifyDataErrorInfo Interface

    现在的问题是:我们需要实现这个接口吗? 我假设为了通知用户导入或导出数据的结果,使用 MVVM 模式和INotifyPropertyChanged 就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2010-11-24
      相关资源
      最近更新 更多