我创建了一个希望与 WPF 应用程序一起使用的 WCF RIA 服务。我在实体元数据上添加了几个 System.ComponentModel.DataAnnotations 验证规则,当我从客户端调用 .SubmitChanges(changeSet) 时,所有这些规则都在服务器上运行良好。在将更改提交到服务器之前,我还想在客户端验证我的实体,但我不知道该怎么做。在这方面的任何帮助将不胜感激!谢谢....
最佳答案
据我所知,没有用于 WPF 的 WCF RIA 服务(尽管我很高兴被证明是错误的,因为我正在等待这个......),所以你必须自己做客户端工作。
使用 VisualTreeHelper 遍历表单中的每个控件,如果控件是面板,则使用递归。对于每个控件,都有一个潜在绑定(bind)属性的列表(我猜在这种情况下只有一个)。例如,一个 TextBox 可能会绑定(bind)其 TextBoxProperty,而 CheckBox 将绑定(bind)其 IsCheckedProperty。使用 BindingOperation.GetBinding 获取 Binding 实例,该实例为您提供 Source 和 Path 属性。现在在源上使用反射来查看是否有与之关联的数据注释。如果有,请检查它。
是的,它有很多代码。
关于wpf - 如何使用 WCF RIA 服务在 WPF 中进行客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798631/