2011-04-05 31 views
1

我在WPFWPF有效性規則綁定拋出XMLParseException

以下有效性規則類
public class EmptyFieldValidationRule: BaseValidationRule 
{ 
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo) 
    { 
     var fieldValue = (string)value; 
     if (fieldValue.Trim().Length == 0) 
     { 
      return new ValidationResult(false, "Field Is Empty"); 
     } 
     else 
     { 
      return new ValidationResult(true, null); 
     } 
    } 
} 

注 - BaseValidationRule延長了正常有效性規則類。

這實際上只是一個測試驗證課程,因爲我想從容入手。

我試圖將它綁定到我的XAML中的文本框,並且它正在讀取BaseValidationRule類中的罰款,它甚至在Intellisense中給我它,但是當我去運行該程序並且它擊中應用程序,它告訴我一個XMLParseException。

我在XAML中定義了一個ErrorMessage屬性,該屬性在BaseValidationRule的EmptyFieldValidationRule類中繼承。

的XAML的有效性規則綁定貌似我正在以下 enter image description here

錯誤信息如下。

XAMLParseException發生,無法加載文件或程序集XXX.ValidationRule,Public KeyToken = null或其依賴項之一。該系統找不到指定的文件。

我已經將該引用提供給ValidationRule程序集,並且智能感知正在讀取我的XAML中的ValidationRule罰款,還有其他我需要做的事嗎?

回答

2

請確保您有您的XAML文檔中定義的XML命名空間,如下所示:

xmlns:validation="clr-namespace:Some.Assembly.Name.Some.Namespace.Containing.Validations;assembly=Some.Assembly.Name" 

Some.Assembly.Name.Some.Namespace.Containing.Validations應該是你的命名空間的全名包含EmptyFieldValidationRule類和Some.Assembly.Name應該是該類的庫名稱。

0

是否將XAML設置爲「Copy Local = True」的項目中對驗證程序集的引用? 如果沒有,這將解釋這個問題。

+0

我沒有這樣的事情,我該怎麼指定呢? – TheJediCowboy 2011-04-05 17:40:21

+0

如果我理解正確,你有一個帶有XAML文件(X)的程序集,另一個帶有驗證碼(V)。 X引用V,所以在查看引用的屬性時,應該看到'Copy local'屬性。 – Timores 2011-04-05 20:14:02

+0

好的,我試過了,它仍然給我同樣的錯誤 – TheJediCowboy 2011-04-05 21:35:36