public RemoteValueChangeByChoiceForm(
     string title, Func <T, Task <T> > saveChange,
     RemoteValueChangeByChoiceFormView <T> view,
     params Validate <T>[] validators)
     : this(() => title, saveChange, view, validators)
 {
 }
        public RemoteValueChangeByChoiceForm(
            Func <string> titleProv, Func <T, Task <T> > saveChange,
            RemoteValueChangeByChoiceFormView <T> view,
            params Validate <T>[] validators)
        {
            _titleProv = titleProv;
            _view      = view;

            _localValue = LocalValueFieldBuilder.Build(default(T), view.Choosen, validators);

            var remoteActionModel = RemoteActionBuilder.Build(view.Confirm,
                                                              () => saveChange(_localValue.Value),
                                                              x => {
                SavedValue = x;
                Ended?.Invoke(this, CompletedOrCanceled.Completed);
            });

            var isFormValid = new AggregatedErrorsValue <bool>(false, self => !self.Errors.Any(), x => {
                x.Observes(_localValue);
            });

            remoteActionModel.BindEnableAndInitialize(isFormValid);
        }