public override void Do(ActionArgs e) { if (precheckToDo(e)) { Begin(e); ActionSupportAccountAskArgs arg = e as ActionSupportAccountAskArgs; Deployment.Current.Dispatcher.BeginInvoke(() => { SupportAccountAskDialog dialog = new SupportAccountAskDialog(); dialog.OnComplete += dialog_OnComplete; arg.ParentLayout.Children.Add(dialog.Dialog); _waiting.Add(dialog, arg); dialog.show(); }); } else { Cancel(e); } }
private void dialog_OnComplete(object sender, SupportAccountAskEventArgs e) { SupportAccountAskDialog dialog = sender as SupportAccountAskDialog; if (dialog != null) { try { ActionSupportAccountAskArgs arg = _waiting[dialog]; _waiting.Remove(dialog); arg.ParentLayout.Children.Remove(dialog.Dialog); arg.AccountId = e.AccountId; Done(arg); } catch (Exception ex) { //throw ex; } } else { //throw ex; } }