Как объявить пространство имен в WPF XAML? - PullRequest
26 голосов
/ 18 января 2010

Я пытаюсь использовать в WPF проверочный ввод элементов управления с привязкой к данным с правилами валидации. В коде позади файла окна wpf у меня есть класс:

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

В XAML также есть шаблон ошибки стиля.

Когда я помещаю текстовое поле с проверкой в ​​XAML:

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

Я получаю ошибку во время компиляции: '' local '- это необъявленное пространство имен.' XML недействителен.

Как мне объявить local:posintValidationRule в моем XAML?

1 Ответ

51 голосов
/ 18 января 2010

В верхней части вашего XAML-файла вам нужно объявить, каково ваше «локальное» пространство имен;наряду со стандартным материалом Microsoft XAML.Примерно так:

xmlns:local="clr-namespace:YourApplication"

Обратите внимание, это предполагает, что "posintValidationRule" определено в корневом пространстве имен в "YourApplication".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...