コード例 #1
0
        public int Show(string dialogKey, Dictionary <string, object> parameters, Action dialogDismissed)
        {
            int id = _dialogId++;

            parameters = parameters ?? new Dictionary <string, object>();
            parameters.Add("DialogId", id);
            string parametersKey = NavigationService.StoreMessageDialogParameters(dialogKey, parameters);

            IMvvmDialog dialog = ShowDialog(dialogKey);

            dialog.ParametersKey = parametersKey;
            dialog.Dismissed    += OnDialogDismissed;

            _dialogStack.Add(new Tuple <IMvvmDialog, Action, int>(dialog, dialogDismissed, id));
            dialog.Show();
            return(id);
        }
コード例 #2
0
        private void OnDialogDismissed(object sender, EventArgs eventArgs)
        {
            IMvvmDialog dialog = sender as IMvvmDialog;

            if (dialog == null)
            {
                return;
            }
            dialog.Dismissed -= OnDialogDismissed;
            Tuple <IMvvmDialog, Action, int> savedTuple = _dialogStack.FirstOrDefault(x => Equals(x.Item1, dialog));

            if (savedTuple != null)
            {
                _dialogStack.Remove(savedTuple);
                if (savedTuple.Item2 != null)
                {
                    savedTuple.Item2();
                }
            }
        }