コード例 #1
0
        public BindingBase ProvideBinding(IResourceContext context)
        {
            var binding = context.CreateModelBinding(PropertyPath);

            if (OneWay)
            {
                binding.Mode = BindingMode.OneWay;
            }

            BindingOptions.Apply(binding);
            var deserializer = ReplacementPipe.CreateDeserializer(context);

            binding.Converter = new StringTypeConverter(deserializer);
            binding.ValidationRules.Add(new ConversionValidator(deserializer, ConversionErrorStringProvider(context),
                                                                binding.ConverterCulture));
            var pipe = new ValidationPipe();

            foreach (var validatorProvider in ValidationRules)
            {
                binding.ValidationRules.Add(validatorProvider.GetValidator(context, pipe));
            }

            binding.ValidationRules.Add(pipe);
            return(binding);
        }
コード例 #2
0
 public ConvertedDataBinding(string propertyPath, BindingOptions bindingOptions,
                             List <IValidatorProvider> validationRules, ReplacementPipe replacementPipe,
                             Func <IResourceContext, IErrorStringProvider> conversionErrorStringProvider)
     : this(propertyPath, bindingOptions, validationRules,
            replacementPipe, conversionErrorStringProvider, false)
 {
 }
コード例 #3
0
 public ConvertedDirectBinding(BindingOptions bindingOptions,
                               List <IValidatorProvider> validationRules, ReplacementPipe replacementPipe,
                               Func <IResourceContext, IErrorStringProvider> conversionErrorStringProvider)
 {
     BindingOptions  = bindingOptions ?? throw new ArgumentNullException(nameof(bindingOptions));
     ReplacementPipe = replacementPipe ?? throw new ArgumentNullException(nameof(replacementPipe));
     ValidationRules = validationRules ?? new List <IValidatorProvider>();
     ConversionErrorStringProvider = conversionErrorStringProvider;
 }
コード例 #4
0
 public ConvertedDataBinding(string propertyPath, BindingOptions bindingOptions,
                             List <IValidatorProvider> validationRules, ReplacementPipe replacementPipe,
                             Func <IResourceContext, IErrorStringProvider> conversionErrorStringProvider,
                             bool oneWay)
 {
     PropertyPath    = propertyPath;
     BindingOptions  = bindingOptions ?? throw new ArgumentNullException(nameof(bindingOptions));
     ReplacementPipe = replacementPipe ?? throw new ArgumentNullException(nameof(replacementPipe));
     ValidationRules = validationRules ?? new List <IValidatorProvider>();
     ConversionErrorStringProvider = conversionErrorStringProvider;
     OneWay = oneWay;
 }
コード例 #5
0
 public ConvertedField(string key, Type propertyType, ReplacementPipe replacementPipe) : base(key, propertyType)
 {
     ReplacementPipe = replacementPipe;
     CreateBinding   = false;
 }