Пример #1
0
        public void ConverterTest()
        {
            ValidationErrorsConverter converter = ValidationErrorsConverter.Default;

            Assert.AreEqual(converter, ValidationErrorsConverter.Default);

            AssertHelper.ExpectedException <NotSupportedException>(() => converter.ConvertBack(null, (Type[])null, null, null));

            Assert.AreEqual(DependencyProperty.UnsetValue, converter.Convert((object[])null, null, null, null));

            Assert.AreEqual(DependencyProperty.UnsetValue, converter.Convert(new[] { "WrongType" }, null, null, null));

            List <ValidationError> validationErrors = new List <ValidationError>();

            Assert.AreEqual("", converter.Convert(new[] { validationErrors }, null, null, null));

            ExceptionValidationRule rule = new ExceptionValidationRule();

            validationErrors.Add(new ValidationError(rule, new object(), "First error message", null));
            Assert.AreEqual("First error message", converter.Convert(new[] { validationErrors }, null, null, null));

            validationErrors.Add(new ValidationError(rule, new object(), "Second error message", null));
            Assert.AreEqual("First error message" + Environment.NewLine + "Second error message",
                            converter.Convert(new[] { validationErrors }, null, null, null));
        }
Пример #2
0
        /// <summary>
        /// This method is being invoked during initialization.
        /// </summary>
        /// <param name="provider">Provides access to the bound items.</param>
        /// <returns>The binding expression that is created by
        /// the base class.</returns>
        public override object ProvideValue(IServiceProvider provider)
        {
            ValidationRule rule;

            switch (Rule)
            {
            case CustomRule.DirectoryMustExists:
                rule = new DirectoryMustExistsRule(false);
                break;

            case CustomRule.EmptyOrDirectoryMustExists:
                rule = new DirectoryMustExistsRule(true);
                break;

            default:
                rule = new ExceptionValidationRule();
                break;
            }

            Binding.ValidationRules.Add(rule);
            return(base.ProvideValue(provider));
        }