2010-01-18 35 views
26

WPF'de doğrulama kuralları ile birlikte veri denetimlerinin doğrulanmış bir girdisini kullanmaya çalışıyorum. XAML içindeWPF XAML'de ad alanı nasıl bildirilir?

public class posintValidationRule : ValidationRule 
{ 
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo) 
    { 
     string _strInt = value.ToString(); 
     int _int = -1; 
     if (!Int32.TryParse(_strInt, out _int)) 
      return new ValidationResult(false, "Value must be an integer"); 
     if (_int < 0) 
      return new ValidationResult(false, "Value must be positive"); 
     return new ValidationResult(true, null); 
    } 
} 

da bir stil hatası şablon vardır: Bir wpf penceresinin dosya arkasındaki kodda ben bir sınıf var.

<TextBox.Text> 
    <Binding Path="seconds" UpdateSourceTrigger="PropertyChanged"> 
     <Binding.ValidationRules> 
      <local:posintValidationRule/> 
     </Binding.ValidationRules> 
    </Binding> 
</TextBox.Text> 

Ben bir derleme zamanı hatası alıyorum: Ben XAML Doğrulama ile ilgili bir metin kutusu koymak

. '' Yerel 'bir bildirilmemiş ad alanıdır' XML geçerli değil.

XAML'imde nasıl local:posintValidationRule bildirmeliyim?

cevap

51

XAML dosyanızın en üstünde, "yerel" ad alanınızın ne olduğunu bildirmeniz gerekir; varsayılan Microsoft XAML öğelerinin yanında. Böyle bir şey:

xmlns:local="clr-namespace:YourApplication" 

Not bu "posintValidationRule" "Uygulamanızdaki" kök ad olarak tanımlanır varsayar.