0
是否有任何方法將自定義驗證錯誤添加到控件錯誤列表中?我知道如何使用IDataErrorInfo,INotifyErrorInfo,ValidationAttribute等,但我想從代碼中添加自定義驗證錯誤。在Silverlight中添加自定義驗證錯誤
是否有任何方法將自定義驗證錯誤添加到控件錯誤列表中?我知道如何使用IDataErrorInfo,INotifyErrorInfo,ValidationAttribute等,但我想從代碼中添加自定義驗證錯誤。在Silverlight中添加自定義驗證錯誤
找到了一個方法:
首先,創建一個公共類舉行我們的錯誤消息:
公共類TagModelError { 私人只讀字符串的errorMessage;
public TagModelError(String errorMessage)
{
this.errorMessage = errorMessage;
}
public Object Tag
{
get
{
return new Object();
}
set
{
throw new ValidationException(this.errorMessage);
}
}
}
接下來,創建一個輔助方法:
公共靜態無效AddValidationError(此控制控制,字符串的errorMessage) { 變種表達= elm.GetBindingExpression(FrameworkElement.TagProperty);
if (expression == null)
{
expression = control.SetBinding(FrameworkElement.TagProperty, new Binding("Tag")
{
Mode = BindingMode.TwoWay,
ValidatesOnExceptions = true,
UpdateSourceTrigger = UpdateSourceTrigger.Explicit,
Source = new TagModelError(errorMessage)
}) as BindingExpression;
}
expression.UpdateSource();
}
我使用標籤屬性,因爲它是很少需要,但你可以用一個又一個。這裏的技巧是在寫回模型時導致異常。
似乎無法格式化代碼... –