예제 #1
0
            public Adapter(TypeConvertedParameter parameter, ParameterViewModel viewModel)
            {
                _parameter = parameter;
                _viewModel = viewModel;

                _viewModel.ValueChanged += ParameterViewModel_OnValueChanged;
            }
예제 #2
0
        public PresentedParameter Present(IParameterDescriptor param, Action updateCallback)
        {
            if (!param.TryGetPresentTypeConverter(out var converter))
            {
                throw new ArgumentException();
            }
            var converted = new TypeConvertedParameter(param, converter);
            var presented = converted.GetPresenter().Present(converted, updateCallback);

            void Setter(object val) => presented.Delegates.Setter(converter.ConvertForward(val));
            object Getter() => converter.ConvertBackward(presented.Delegates.Getter());
            bool Validator(object val) => presented.Delegates.Validator?.Invoke(converter.ConvertForward(val)) ?? true;

            return(new PresentedParameter(param, presented.Element, new PresentedParameter.ParamDelegates(Getter, Setter, Validator, presented.Delegates.Updater)));
        }
예제 #3
0
 public Adapter(TypeConvertedParameter parameter, PresentedParameter presented)
 {
     _parameter = parameter;
     _presented = presented;
 }