예제 #1
0
        private bool?LaunchDialog(DeviceHubDialogViewModelBase viewModel, bool isModal, EventHandler closedHandler)
        {
            bool?retval = null;

            DeviceHubDialogView view = GetDialogView(viewModel);

            view.DataContext = viewModel;
            view.Owner       = ParentWindow;

            if (isModal)
            {
                viewModel.RequestClose += view.OnRequestClose;
                retval = view.ShowDialog();

                viewModel.RequestClose -= view.OnRequestClose;
                view.DataContext        = null;
                view = null;
            }
            else
            {
                if (closedHandler != null)
                {
                    viewModel.NotifyClosed += closedHandler;
                }

                view.Closed += (o, a) => { viewModel.NotifyClosedSubscribers(); };
                view.Show();
                viewModel.Activate();
            }

            return(retval);
        }
예제 #2
0
        private DeviceHubDialogView GetDialogView(DeviceHubDialogViewModelBase viewModel)
        {
            if (Contents == null)
            {
                throw new Exception("Dialog Service contents are null!");
            }

            string         viewModelClassname = viewModel.GetType().FullName;
            DialogContents item = Contents.Where(c => c.ViewModelClassname == viewModelClassname).FirstOrDefault();

            if (item == null)
            {
                throw new Exception(String.Format("Invalid classname, {0), passed to DialogService.LaunchDialog().", viewModelClassname));
            }

            Type viewType            = Type.GetType(item.ViewClassname);
            DeviceHubDialogView view = (DeviceHubDialogView)Activator.CreateInstance(viewType);

            view.Owner = ParentWindow;

            return(view);
        }
예제 #3
0
 public bool?ShowDialog(DeviceHubDialogViewModelBase viewModel)
 {
     return(LaunchDialog(viewModel, true, null));
 }
예제 #4
0
 public void Show(DeviceHubDialogViewModelBase viewModel, EventHandler closedHandler)
 {
     LaunchDialog(viewModel, false, closedHandler);
 }