2015-05-11 19 views

回答

0

找到了一個方法:

  1. 首先,創建一個公共類舉行我們的錯誤消息:

    公共類TagModelError { 私人只讀字符串的errorMessage;

    public TagModelError(String errorMessage) 
        { 
         this.errorMessage = errorMessage; 
        } 
    
        public Object Tag 
        { 
         get 
         { 
          return new Object(); 
         } 
         set 
         { 
          throw new ValidationException(this.errorMessage); 
         } 
        } 
    } 
    
  2. 接下來,創建一個輔助方法:

    公共靜態無效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(); 
    } 
    

我使用標籤屬性,因爲它是很少需要,但你可以用一個又一個。這裏的技巧是在寫回模型時導致異常。

+0

似乎無法格式化代碼... –