/// <summary> /// Displays a modal dialog of a type that is determined by the dialog type locater. /// </summary> /// <param name="ownerViewModel">A view model that represents the owner window of the dialog.</param> /// <param name="viewModel">The view model of the new dialog.</param> /// <returns> /// A nullable value of type <see cref="T:System.Boolean" /> that signifies how a window was closed by /// the user. /// </returns> public new bool?ShowDialog(INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel) { StatusUpdate.IsPopUpOpen = true; bool?result = base.ShowDialog(ownerViewModel, viewModel); StatusUpdate.IsPopUpOpen = false; return(result); }
private bool?ShowDialog( INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel, Type dialogType) { Window dialog = CreateDialog(dialogType, ownerViewModel, viewModel); PropertyChangedEventHandler handler = RegisterDialogResult(dialog, viewModel); dialog.ShowDialog(); UnregisterDialogResult(viewModel, handler); return(viewModel.DialogResult); }
public virtual void Init() { _modalDialogViewModel = GetModalDialogViewModel(); ConfirmCommand = new DelegateCommand( Confirm, CheckCanConfirmCommandExecute); CancelCommand = new DelegateCommand( Cancel, CheckCanCancelCommandExecute); OnInit(); }
private bool?ShowDialog( INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel, Type dialogType) { Logger.Write($"Dialog: {dialogType}; View model: {viewModel.GetType()}; Owner: {ownerViewModel.GetType()}"); IWindow dialog = CreateDialog(dialogType, ownerViewModel, viewModel); PropertyChangedEventHandler handler = RegisterDialogResult(dialog, viewModel); dialog.ShowDialog(); UnregisterDialogResult(viewModel, handler); return(viewModel.DialogResult); }
/// <summary> /// Displays a custom modal dialog of specified type <typeparamref name="T"/>. /// </summary> /// <param name="ownerViewModel"> /// A view model that represents the owner window of the custom dialog. /// </param> /// <param name="viewModel">The view model of the new custom dialog.</param> /// <typeparam name="T">The type of the custom dialog to show.</typeparam> /// <returns> /// A nullable value of type <see cref="bool"/> that signifies how a window was closed by /// the user. /// </returns> /// <exception cref="ViewNotRegisteredException"> /// No view is registered with specified owner view model as data context. /// </exception> public bool?ShowCustomDialog <T>( INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel) where T : IWindow { if (ownerViewModel == null) { throw new ArgumentNullException(nameof(ownerViewModel)); } if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel)); } return(ShowDialog(ownerViewModel, viewModel, typeof(T))); }
private static PropertyChangedEventHandler RegisterDialogResult( Window dialog, IModalDialogViewModel viewModel) { PropertyChangedEventHandler handler = (sender, e) => { if (e.PropertyName == DialogResultPropertyName) { dialog.DialogResult = viewModel.DialogResult; } }; viewModel.PropertyChanged += handler; return(handler); }
private static PropertyChangedEventHandler RegisterDialogResult( IWindow dialog, IModalDialogViewModel viewModel) { PropertyChangedEventHandler handler = (sender, e) => { if (e.PropertyName == DialogResultPropertyName && dialog.DialogResult != viewModel.DialogResult) { Logger.Write($"Dialog: {dialog.GetType()}; Result: {viewModel.DialogResult}"); dialog.DialogResult = viewModel.DialogResult; } }; viewModel.PropertyChanged += handler; return(handler); }
/// <summary> /// Displays a modal dialog of a type that is determined by the dialog type locator. /// </summary> /// <param name="ownerViewModel"> /// A view model that represents the owner window of the dialog. /// </param> /// <param name="viewModel">The view model of the new dialog.</param> /// <returns> /// A nullable value of type <see cref="bool"/> that signifies how a window was closed by /// the user. /// </returns> /// <exception cref="ViewNotRegisteredException"> /// No view is registered with specified owner view model as data context. /// </exception> public bool?ShowDialog( INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel) { if (ownerViewModel == null) { throw new ArgumentNullException(nameof(ownerViewModel)); } if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel)); } Type dialogType = dialogTypeLocator.Locate(viewModel); return(ShowDialog(ownerViewModel, viewModel, dialogType)); }
private static PropertyChangedEventHandler RegisterDialogResult( IWindow dialog, IModalDialogViewModel viewModel) { void Handler(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == DialogResultPropertyName && dialog.DialogResult != viewModel.DialogResult) { Logger.Write($"Dialog: {dialog.GetType()}; Result: {viewModel.DialogResult}"); dialog.DialogResult = viewModel.DialogResult; } } viewModel.PropertyChanged += Handler; return(Handler); }
private static PropertyChangedEventHandler RegisterDialogResult( Window dialog, IModalDialogViewModel viewModel) { PropertyChangedEventHandler handler = (sender, e) => { if (e.PropertyName == DialogResultPropertyName && dialog.DialogResult != viewModel.DialogResult) { Logger.Write("Dialog: {0}; Result: {1}".InvariantFormat(dialog.GetType(), viewModel.DialogResult)); dialog.DialogResult = viewModel.DialogResult; } }; viewModel.PropertyChanged += handler; return(handler); }
private bool?ShowDialog( INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel, Type dialogType) { Logger.Write("Dialog: {0}; View model: {1}; Owner: {2}" .InvariantFormat( dialogType, viewModel.GetType(), ownerViewModel.GetType())); Window dialog = CreateDialog(dialogType, ownerViewModel, viewModel); PropertyChangedEventHandler handler = RegisterDialogResult(dialog, viewModel); dialog.ShowDialog(); UnregisterDialogResult(viewModel, handler); return(viewModel.DialogResult); }
private static void UnregisterDialogResult( IModalDialogViewModel viewModel, PropertyChangedEventHandler handler) { viewModel.PropertyChanged -= handler; }
public bool?ShowDialog(INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel) { throw new NotImplementedException(); }
public bool?ShowDialog <[NullableAttribute(0)] T>(INotifyPropertyChanged ownerViewModel, IModalDialogViewModel viewModel) where T : System.Windows.Window { throw new NotImplementedException(); }