public ToReactivePropertyAsSynchronizedViewModel(ToReactivePropertyAsSynchronizedModel _model)
        {
            Model = _model.AddTo(DisposeCollection);

            IgnoreValidationErrorValueTrueInput =
                Model.IgnoreValidationErrorValueTrue.ToReactivePropertyAsSynchronized(
                    x => x.Value,
                    x => x.Name,
                    x => String.IsNullOrEmpty(x) ? ViewName.NullObject : ViewName.Create(x),
                    Reactive.Bindings.ReactivePropertyMode.Default | Reactive.Bindings.ReactivePropertyMode.IgnoreInitialValidationError,
                    true
                    ).SetValidateNotifyError(x => String.IsNullOrEmpty(x) ? "何か入力してください。" : null)
                .AddTo(DisposeCollection);

            ShowCommand.Subscribe(() => System.Windows.MessageBox.Show(Model.IgnoreValidationErrorValueTrue.Value.Name)).AddTo(DisposeCollection);

            IgnoreValidationErrorValueFalseInput =
                Model.IgnoreValidationErrorValueFalse.ToReactivePropertyAsSynchronized(
                    x => x.Value,
                    x => x.Name,
                    x => String.IsNullOrEmpty(x) ? ViewName.NullObject : ViewName.Create(x),
                    Reactive.Bindings.ReactivePropertyMode.Default | Reactive.Bindings.ReactivePropertyMode.IgnoreInitialValidationError,
                    false
                    ).SetValidateNotifyError(x => String.IsNullOrEmpty(x) ? "何か入力してください。" : null)
                .AddTo(DisposeCollection);

            Show2Command.Subscribe(() => System.Windows.MessageBox.Show(Model.IgnoreValidationErrorValueFalse.Value.Name)).AddTo(DisposeCollection);
        }
Exemplo n.º 2
0
        public ContentViewModel(IDialogService _dialogService)
        {
            DialogService = _dialogService;

            RequestNavigateCommand
            .Subscribe(() => RegionNavigationService.RequestNavigate(nameof(CustomDialogView), new NavigationParameters {
                { "Input", Input.Value }
            }))
            .AddTo(DisposeCollection);

            ShowDialogCommand
            .Subscribe(() =>
            {
                IDialogResult result = null;
                DialogService.ShowDialog(nameof(CustomDialogView), new DialogParameters {
                    { "Input", Input.Value }
                }, ret => result = ret);

                if (result != null)
                {
                    Input.Value = result.Parameters.GetValue <string>("Input");
                }
            }).AddTo(DisposeCollection);

            ShowCommand
            .Subscribe(async() =>
            {
                var trigger = new Subject <IDialogResult>();
                var result  = trigger.ToReadOnlyReactivePropertySlim();

                DialogService.Show(nameof(CustomDialogView), new DialogParameters {
                    { "Input", Input.Value }
                }, trigger.OnNext);

                await result;

                Input.Value = result.Value.Parameters.GetValue <string>("Input");
            }).AddTo(DisposeCollection);
        }