代码之家  ›  专栏  ›  技术社区  ›  Dave Sanders

将Silverlight DataForm.DataField标记为无效?

  •  1
  • Dave Sanders  · 技术社区  · 14 年前

    好吧,这应该是一件非常简单的事情,我要么错过了什么,要么就做错了。

    事实:

    1. silverlight4,使用工具箱和DataForms/DataFields,但不使用验证摘要。

    2. 使用模板化的数据表单,简单的新建/编辑用户表单,包括用户名、名字等常用字段,以及密码和确认密码。

    3. 如果在#3中验证失败,则通过在密码字段中输入常规提示来提醒用户(红色边框,单击字段时显示消息)

    我现在可以完成#3的所有操作。但是如果发生错误,那么错误将显示为窗体错误,而不是字段错误(这是有意义的,因为验证是在类上,而不是在属性上)。我找不到一种方法来标记我的字段以显示错误。因为我没有使用验证摘要(出于设计原因),所以用户永远不会看到错误。

    有没有其他人这样做过,或者他们能给我发一个不使用验证摘要的带有密码字段的数据表单的示例,让我看看他们是如何解决的?

    我目前看到的两个选项是自己手动标记数据字段。或者,我将构建自己的显示完整形式错误的方法,该方法不会像验证摘要那样重复错误(例如,我需要一个只显示表单错误而不是字段错误的验证摘要。)

    谢谢

    1 回复  |  直到 14 年前
        1
  •  3
  •   Dave Sanders    14 年前

    好的,我解决了这个问题。以下是一些提示:

    1. 在xaml的.cs代码中,我通过调用对象上的TryValidate来验证对象。如果不使用内置的DataForm命令按钮,这不是一个好主意。如果使用自己的自定义按钮,请确保调用DataForm.ValidateItem()方法,以确保所有错误都正确地输出到ValidationSummary(在我的例子中,没有任何东西能够进入validationsummary,因为我没有表单来进行验证。)

    2. 您可以告诉ValidationSummary只显示对象级错误(属性错误仍会显示,但仅在字段上显示。)要执行此操作,请执行以下操作:

    有关更多信息,请参阅ValidationSummaryFilters。

    推荐文章