Привязка WPF ValidationRule вызывает исключение XMLParseException - PullRequest
1 голос
/ 05 апреля 2011

У меня есть следующий класс ValidationRule в WPF

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 расширяет нормальный ValidationRule класс.

Это действительнопросто тестовый класс проверки, потому что я хотел начать проще.

Я пытаюсь связать это с текстовым полем в моем XAML, и он отлично читает в классе BaseValidationRule, он даже дает мне его в Intellisense, но когда я запускаю программу и она попадает в эту часть приложения, она сообщает мне XMLParseException.

Я определяю свойство ErrorMessage в XAML, которое наследуется в классе EmptyFieldValidationRule из BaseValidationRule.

XAML для привязки ValidationRule выглядит следующим образом enter image description here

Я получаю следующее сообщение об ошибке:

XAMLParseException произошла, не удалосьзагрузить файл или сборку XXX.ValidationRule, Public KeyToken = null или одну из ее зависимостей.Системе не удается найти указанный файл.

Я сделал ссылку доступной для сборки ValidationRule, и intellisense считывает в ValidationRule штрафа в моем XAML, есть ли что-то еще, что мне нужно сделать?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

Пожалуйста, убедитесь, что у вас есть пространство имен XML, определенное в вашем документе XAML следующим образом:

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

Где Some.Assembly.Name.Some.Namespace.Contained.Validations должно быть полным именем вашего пространства имен, связанного с EmptyFieldValidationRule class, а Some.Assembly.Name должно быть библиотекой название для этого класса.

0 голосов
/ 05 апреля 2011

Ссылка на сборку проверки в проекте с XAML установлена ​​на "Копировать локальный = True"? Если нет, то это объяснит проблему.

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