2010-11-18 24 views
2

我对Silverlight验证有点不知所措。 我终于想出了如何将IDataErrorInfoINotifyDataErrorInfo一起使用,以便在我验证后,控件的红色边框开始显示。钩子验证总结到Silverlight 4中我的ViewModel的孩子

但是出于某种奇怪的原因,我无法得到ValidationSummary显示。

我目前怀疑这与我绑定到当前ViewModel的子级的所有控件有关。

所以用户控件通过绑定绑定到NewCustomerViewModel而所有的投入要素也必然包含内NewCustomerViewModel一个Customer对象是这样的:

<TextBox Text="{Binding Path=NewCustomer.Address, Mode=TwoWay, 
     ValidatesOnNotifyDataErrors=True, ValidatesOnDataErrors=True}"/> 

我尝试设置在ValidationSummary的DataContext属性绑定到客户财产,但这并不成功。

任何想法?

回答

3

我想这可能是因为你必须在ValidationSummary的目标属性设置为一个UI元素。这对我来说是什么。

0

为什么要实现IDataErrorInfo INotifyDataErrorInfo接口?虽然你可以实现,但没有必要。 INotifyDataErrorInfo接口对于Silverlight是唯一的,并且比IDataErrorInfo接口(IMO)更好。因此,您不需要在绑定中将ValidatesOnDataErrors设置为True(因为您不使用关联的接口),而且实际上也不需要将ValidatesOnNotifyDataErrors属性设置为True,因为True是其默认值。

但是,这实际上并没有回答你的问题:)。我可能需要更多的细节(主要是你的XAML)来给你更多的帮助。展示问题的示范项目的任何机会?

克里斯

+0

当然,我会把样品放在一起。对于'INotifyDataErrorInfo'。我使用这个接口的主要原因是能够通知控件,如果用户点击保存而不输入任何输入,它们是无效的。仅凭IDataErrorInfo是不可能的(至少不适用于我)。我想我可以删除IDataErrorInfo接口alltogether ..我会放在一起的样本。感谢您的帮助..我还检查了books.google.com上关于该主题的书籍,但它并没有真正的帮助。 – Tigraine 2010-11-19 09:42:28