Comment déclarer un espace de noms dans WPF XAML?

J'essaie d'utiliser dans WPF une entrée de validation des contrôles databound avec des règles de validation. Dans le code derrière le fichier d'une fenêtre wpf, j'ai une classe:

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);
    }
}

Dans XAML, il existe également un modèle d'erreur de style.

Quand je mets une zone de texte avec validation en XAML:

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

Je reçois une erreur de compilation: "local' est un espace de noms non déclaré.'XML n'est pas valide.

Comment déclarer local:posintValidationRule dans mon XAML?

26
demandé sur Sнаđошƒаӽ 2010-01-18 22:49:09

1 réponses

En haut de votre fichier XAML, vous devez déclarer Quel Est votre espace de noms "local"; à côté des éléments Microsoft XAML par défaut. Quelque chose comme ceci:

xmlns:local="clr-namespace:YourApplication"

Notez que cela suppose que "posintValidationRule" est défini dans l'espace de noms racine dans "YourApplication".

51
répondu StrayPointer 2010-01-18 19:54:38