Example #1
0
 ValueBinder(
     CommonEx.TryParseDelegate <TModel> tryViewToModel,
     Func <TModel, string> modelToView,
     Func <TModel, bool> valueRangeValidator,
     Func <TModel, TModel> coerceBeforeShow,
     Func <string, bool> validator)
 {
     TryViewToModel      = tryViewToModel ?? throw new ArgumentNullException(nameof(tryViewToModel));
     ModelToView         = modelToView ?? throw new ArgumentNullException(nameof(modelToView));
     ValueRangeValidator = valueRangeValidator ?? throw new ArgumentNullException(nameof(valueRangeValidator));
     CoerceBeforeShow    = coerceBeforeShow ?? throw new ArgumentNullException(nameof(coerceBeforeShow));
     Validator           = validator ?? throw new ArgumentNullException(nameof(validator));
 }
Example #2
0
        public ValueBinder(
            CommonEx.TryParseDelegate <TModel> viewToModel,
            Func <TModel, string> modelToView,
            Func <TModel, bool> valueRangeValidator,
            Func <TModel, TModel> coerceBeforeShow)
        {
            TryViewToModel      = viewToModel ?? throw new ArgumentNullException(nameof(viewToModel));
            ModelToView         = modelToView ?? throw new ArgumentNullException(nameof(modelToView));
            ValueRangeValidator = valueRangeValidator ?? throw new ArgumentNullException(nameof(valueRangeValidator));
            CoerceBeforeShow    = coerceBeforeShow ?? throw new ArgumentNullException(nameof(coerceBeforeShow));
            Validator           = viewValue =>
            {
                var isOk = viewToModel(viewValue, out TModel modelValue);
                if (isOk)
                {
                    isOk &= ValueRangeValidator(modelValue);
                }

                return(isOk);
            };
        }
Example #3
0
 public ValueBinder(CommonEx.TryParseDelegate <TModel> viewToModel, Func <TModel, string> modelToView, Func <TModel, bool> valueRangeValidator)
     : this(viewToModel, modelToView, valueRangeValidator, v => v)
 {
 }