代码之家  ›  专栏  ›  技术社区  ›  RationalGeek

在Silverlight 4中检测验证错误

  •  0
  • RationalGeek  · 技术社区  · 14 年前

    我正在使用新的Silverlight 4对IDataErrorInfo的支持。所以我有一个实现了接口的POCO对象,当验证规则触发时,Silverlight UI会正确地显示错误。所以一切都很好。

    poco对象如下所示:

    public class SomeDomainClass : IDataErrorInfo
    {
        public string SomeString { get; set; }
    
        public string Error
        {
            get { return String.Empty; }
        }
    
        public string this[string columnName]
        {
            get
            {
                if (columnName == "SomeString" && PolicyNumber.Contains("%"))
                    return "SomeString cannot contain '%'.  You'll ruin everything!!!";
                return String.Empty;
            }
        }
    }
    

    但是,我希望能够检测页面上是否有任何错误。例如,如果我有一个“保存”按钮,并且希望在出现错误时禁用它,或者显示一条消息或其他内容。

    检测页面上是否存在验证错误的最佳方法是什么?Silverlight中是否有基于IDataErrorInfo支持的工具?或者我必须自己在域模型中跟踪它?

    1 回复  |  直到 14 年前
        1
  •  1
  •   ligaz    14 年前

    你必须使用 BindingValidationError 路由事件。 This MSDN的文章说明了这一点。