我正在使用 Prism 开发 SL3 应用程序。我需要支持验证(字段级别(在绑定属性的设置器上)和保存之前(表单级别)),包括验证摘要,在按下保存按钮时显示。
但是我可以在谷歌上搜索到的示例要么是 SL3,其中包含大量代码背后的代码(非常不酷且非 Prismy),要么与 WPF 相关。
有谁知道我可以研究的带有一些实际验证的参考应用程序?
干杯,阿里
我正在使用 Prism 开发 SL3 应用程序。我需要支持验证(字段级别(在绑定属性的设置器上)和保存之前(表单级别)),包括验证摘要,在按下保存按钮时显示。
但是我可以在谷歌上搜索到的示例要么是 SL3,其中包含大量代码背后的代码(非常不酷且非 Prismy),要么与 WPF 相关。
有谁知道我可以研究的带有一些实际验证的参考应用程序?
干杯,阿里
目前还没有来自 Microsoft 的,但我明天会将这个传递给 PRISM 团队,看看我们是否可以在 PRISM 的下一个版本中获得一个基本的表单验证示例。
话虽如此,您可以为每个表单放置一个验证器,该验证器基本上验证每个字段(语义和/或语法验证)并且应该全部通过,将返回真/假状态。
我通常这样做的一种方法是将“CanSave”方法附加到我的命令中,即:
SaveOrderCommand = new DelegateCommand<object>(this.Save, this.CanSave);
private bool CanSave(object arg)
{
return this.errors.Count == 0 && this.Quantity > 0;
}
然后在this.CanSave中,然后我将基本验证放在此代码库中,或者我根据上下文调用一堆其他验证器 - 有些将在所有模块之间共享(即 IsEmailValid 将是我放置在我的基础设施中的一个验证器模块作为单例并传入我的字符串,结果是真/假)。一旦它们都通过,请确保 CanSave 返回 true。如果失败,CanSave 将返回 False。
现在,如果它们失败了,并且您想向用户发出友好的提醒,它失败了,您可以在此处使用多种技术。我通常在验证时将所述控件标记为“失败”..(我写了自己的想法,所以你可以在这里使用哪些工具包 - http://www.codeplex.com/SilverlightValidator不是坏的一个)。
现在,我通常喜欢通过不仅突出显示所述控件(红色框、图标等)而且更详细地向用户解释它们的要求 - 因此自定义方法是我的解决方案已经选择了。
归根结底,您将不得不做一些繁重的工作来验证您的特定表单 - 但要寻找在有意义的地方重用验证器的方法(电子邮件、SSN 等很容易重新 -采用)。
HTH?
Scott Barnes - 富平台产品经理 - Microsoft。