public static Task<bool> ConfirmationAsync(string title, string question) { var dataContext = new ConfirmModel { Title = title, Question = question }; var inputWindow = new ConfirmWindow { DataContext = dataContext }; var tcs = new TaskCompletionSource<bool>(); inputWindow.Closed += (sender, args) => { if (inputWindow.DialogResult != null) tcs.SetResult(inputWindow.DialogResult.Value); else tcs.SetCanceled(); }; inputWindow.Show(); return tcs.Task; }
public static Task <bool> ConfirmationAsync(string title, string question) { var dataContext = new ConfirmModel { Title = title, Question = question }; var inputWindow = new ConfirmWindow { DataContext = dataContext }; var tcs = new TaskCompletionSource <bool>(); inputWindow.Closed += (sender, args) => { if (inputWindow.DialogResult != null) { tcs.SetResult(inputWindow.DialogResult.Value); } else { tcs.SetCanceled(); } }; inputWindow.Show(); return(tcs.Task); }
public static Task <T> ConfirmationWithContinuation <T>(string title, string question, Func <Task <T> > onOkay, Func <Task <T> > onCancelled) { var dataContext = new ConfirmModel { Title = title, Question = question }; var inputWindow = new ConfirmWindow { DataContext = dataContext }; var tcs = new TaskCompletionSource <T>(); inputWindow.Closed += async(sender, args) => { try { var result = inputWindow.DialogResult == true ? await onOkay() : await onCancelled(); tcs.SetResult(result); } catch (Exception ex) { tcs.SetException(ex); } }; inputWindow.Show(); return(tcs.Task); }
public static void ConfirmationWithEvent(string title, string question, Action onOkay) { var dataContext = new ConfirmModel { Title = title, Question = question }; var inputWindow = new ConfirmWindow { DataContext = dataContext }; inputWindow.Closed += (sender, args) => { if (inputWindow.DialogResult == true) { onOkay(); } }; inputWindow.Show(); }