private async Task WaitDialog(string message, string title, string buttonText = "确定", Action afterHideCallback = null) { (Guid g, UIElement mg) = ShowDialog(guid => MessageGrid.Show(ChangeDialogResult, guid, message, title, buttonText)); while (true) { lock (_dialogResult) { if (_dialogResult[g] != null) { break; } } await Task.Delay(1); } CloseDialog(g, mg); afterHideCallback?.Invoke(); }
private async Task <bool> WaitDialog(string message, string title, string buttonConfirmText = "确定", string buttonCancelText = "取消", Action <bool> afterHideCallback = null) { (Guid g, UIElement mg) = ShowDialog(guid => MessageGrid.Show(ChangeDialogResult, guid, message, title, buttonConfirmText, buttonCancelText)); while (true) { lock (_dialogResult) { if (_dialogResult[g] != null) { break; } } await Task.Delay(1); } var result = GetDialogResult(g) ?? false; CloseDialog(g, mg); afterHideCallback?.Invoke(result); return(result); }