Esempio n. 1
0
        public void CloseDialog(ModalViewMenuItem vmi)
        {
            if (this.ViewNameDialogDictionary.ContainsKey(vmi.ViewName))
            {
                var dialog = this.ViewNameDialogDictionary[vmi.ViewName];

                if (dialog is ICustomContentDialog)
                {
                    var userControl = (((ICustomContentDialog)dialog).Content) as UserControl;

                    if (userControl is IDisposable)
                    {
                        (userControl as IDisposable).Dispose();
                    }


                    if (userControl.DataContext is IDisposable)
                    {
                        (userControl.DataContext as IDisposable).Dispose();
                    }
                }

                this.ViewNameDialogDictionary.Remove(vmi.ViewName);
                dialog.Close();

                vmi.OnCloseDialog();
            }
        }
Esempio n. 2
0
        public void OpenDialog(ModalViewMenuItem vmi, object parameter, DialogMode dialogMode)
        {
            var view = this.OpenDialog(vmi, dialogMode);

            if (view.DataContext != null && view.DataContext is BaseViewModel)
            {
                var viewModel = view.DataContext as BaseViewModel;
                viewModel.ForceFireNavigateEvent(parameter);
            }
        }
Esempio n. 3
0
        public UserControl OpenDialog(ModalViewMenuItem vmi, DialogMode dialogMode)
        {
            var view = (UserControl)ServiceLocator.Current.GetInstance(vmi.ViewType);

            IDialog dialog = this.dialogManager.CreateCustomContentDialog(view, vmi.Title, dialogMode);

            dialog.CloseBehavior = DialogCloseBehavior.ExplicitClose;

            dialog.OnDialogOpened += Dialog_OnDialogOpened;

            if (view.DataContext != null && view.DataContext is BaseViewModel)
            {
                var viewModel = view.DataContext as BaseViewModel;

                if (viewModel is ICustomOkCancelControl)
                {
                    var cocvm = (viewModel as ICustomOkCancelControl);

                    dialog.Cancel = () =>
                    {
                        if (cocvm.CancelClicked())
                        {
                            CloseDialog(vmi);
                        }
                    };

                    dialog.Ok = () =>
                    {
                        if (cocvm.OkClicked())
                        {
                            CloseDialog(vmi);
                        }
                    };
                }
            }
            else
            {
                dialog.Cancel = () =>
                {
                    CloseDialog(vmi);
                };
            }

            dialog.Show();

            if (!this.ViewNameDialogDictionary.ContainsKey(vmi.ViewName))
            {
                this.ViewNameDialogDictionary.Add(vmi.ViewName, dialog);
            }

            return(view);
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="viewMenuItem"></param>
 public OpenModalViewCommand(ModalViewMenuItem viewMenuItem)
 {
     vmi = viewMenuItem;
 }