コード例 #1
0
        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);
        }
コード例 #2
0
 public ModifyAccountWindow(IMainWindowController mwc, AccountSelector GetSelectedAccount)
 {
     InitializeComponent();
     _mwc = mwc;
     _GetSelectedAccount = GetSelectedAccount;
 }