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); }
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); }