public async Task <Account> SelectAccountAsync(Account[] accounts, IntPtr hwnd) { ClearContainers(); Screen screen = Screen.FromHandle(hwnd); TaskCompletionSource <bool> taskCompletionSourceForDialog = new TaskCompletionSource <bool>(); var options = new NotificationOptions { SetFocus = true, CloseWhenDeactivate = true, Position = NotificationPosition.Bottom, TaskCompletionSource = taskCompletionSourceForDialog, }; var viewModel = new AccountSelectorViewModel(accounts); AccountSelector notification = new AccountSelector(options) { DataContext = viewModel, }; if (notification.Options.IsReplace) { var matchingNotificationViews = GetNotifications().Where(n => n is AccountSelector).ToList(); if (matchingNotificationViews.Count > 0) { foreach (var notificationView in matchingNotificationViews) { notificationView.ResetCloseTimer(); } } else { AddNotification(screen, notification, true); } } bool dialogResult = await taskCompletionSourceForDialog.Task; if (dialogResult) { return(viewModel.SelectedAccount.Account); } return(null); }
public ModifyAccountWindow(IMainWindowController mwc, AccountSelector GetSelectedAccount) { InitializeComponent(); _mwc = mwc; _GetSelectedAccount = GetSelectedAccount; }