private void OnExecuteOpenPopup(Popup popup) { RegisterPopUpEvents(popup); popup.IsOpen = !popup.IsOpen; if (popup.IsOpen) { LoadUIControls(); canOpenPopup = false; } OpenPopupCommand.RaiseCanExecuteChanged(); }
private bool CanTogglePopup(Popup popup) { var res = canOpenPopup; if (!canOpenPopup && !popup.IsOpen) { canOpenPopup = true; OpenPopupCommand.RaiseCanExecuteChanged(); } return(res); }
private void RegisterPopUpEvents(Popup popup) { if (!popUpEventsRegistered && popup != null) { popup.Closed += (sender, args) => { Task.Delay(300).ContinueWith(task => { canOpenPopup = true; OpenPopupCommand.RaiseCanExecuteChanged(); }, System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext()); }; popUpEventsRegistered = true; } }