internal void Close(object parameter) { var dialogClosingEventArgs = new DialogClosingEventArgs(_session, parameter, DialogClosingEvent); _session.IsEnded = true; //multiple ways of calling back that the dialog is closing: // * routed event // * the attached property (which should be applied to the button which opened the dialog // * straight forward dependency property // * handler provided to the async show method OnDialogClosing(dialogClosingEventArgs); _attachedDialogClosingEventHandler?.Invoke(this, dialogClosingEventArgs); DialogClosingCallback?.Invoke(this, dialogClosingEventArgs); _asyncShowClosingEventHandler?.Invoke(this, dialogClosingEventArgs); if (!dialogClosingEventArgs.IsCancelled) { SetCurrentValue(IsOpenProperty, false); } else { _session.IsEnded = false; } _closeDialogExecutionParameter = parameter; }
private void CloseDialogHandler(object sender, ExecutedRoutedEventArgs executedRoutedEventArgs) { if (executedRoutedEventArgs.Handled) { return; } var dialogClosingEventArgs = new DialogClosingEventArgs(executedRoutedEventArgs.Parameter, DialogContent, DialogClosingEvent); //multiple ways of calling back that the dialog is closing: // * routed event // * the attached property (which should be applied to the button which opened the dialog // * straight forward dependency property // * handler provided to the async show method OnDialogClosing(dialogClosingEventArgs); _attachedDialogClosingEventHandler?.Invoke(this, dialogClosingEventArgs); DialogClosingCallback?.Invoke(this, dialogClosingEventArgs); _asyncShowClosingEventHandler?.Invoke(this, dialogClosingEventArgs); if (!dialogClosingEventArgs.IsCancelled) { SetCurrentValue(IsOpenProperty, false); } _closeDialogExecutionParameter = executedRoutedEventArgs.Parameter; executedRoutedEventArgs.Handled = true; }
internal void Close(object parameter) { var dialogClosingEventArgs = new DialogClosingEventArgs(_session, parameter, DialogClosingEvent); _session.IsEnded = true; //多种可能关闭Dialog的方式 OnDialogClosing(dialogClosingEventArgs); _attachedDialogClosingEventHandler?.Invoke(this, dialogClosingEventArgs); DialogClosingCallback?.Invoke(this, dialogClosingEventArgs); _asyncShowClosingEventHandler?.Invoke(this, dialogClosingEventArgs); if (!dialogClosingEventArgs.IsCancelled) { SetCurrentValue(IsOpenProperty, false); } else { _session.IsEnded = false; } _closeDialogExecutionParameter = parameter; }