protected virtual Task OnClosedAsync(bool? result) { var eventArgs = new ViewModelClosedEventArgs(this, result); Closed.SafeInvoke(this, eventArgs); return ClosedAsync.SafeInvokeAsync(this, eventArgs); }