ValidationSummary显示非表单验证

时间:2011-10-05 10:46:48

标签: silverlight validation silverlight-4.0

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

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

我这样做的想法是ValidationSummary控件将在我的ViewModel上侦听INotifyDataErrorInfo.ErrorsChanged事件,并在ViewModel的状态发生变化时相应地自我更新。

不幸的是它没有用。

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

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

假设它应该监听来自INotifyDataErrorInfo的任何消息,而不管UI的组合方式是否正确?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

据我所知 - 你需要创建自己的验证摘要控件来监听事件并绑定到错误源。

答案 1 :(得分:0)

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

  

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

现在的问题是:我们需要实现这个界面吗? 我假设为了告知用户导入或导出数据的结果,使用MVVM模式和INotifyPropertyChanged将是绰绰有余。