Exemplo n.º 1
0
        /// <summary>
        /// Shows a popup at the current mouse position.
        /// </summary>
        /// <param name="rootModel">The root model.</param>
        /// <param name="context">The view context.</param>
        /// <param name="settings">The optional popup settings.</param>
        public virtual void ShowPopup(object rootModel, string context      = null,
                                      IDictionary <string, object> settings = null)
        {
            var popup = CreatePopup(rootModel, settings);
            var view  = _viewModelLocator.LocateForModel(rootModel, context);

            popup.Child = view;
            ViewHelper.SetIsGenerated(popup, true);

            _viewModelBinder.Bind(rootModel, popup, context);

            var activatable = rootModel as IActivate;

            if (activatable != null)
            {
                activatable.Activate();
            }

            var deactivator = rootModel as IDeactivate;

            if (deactivator != null)
            {
                popup.Closed += (s, e) => deactivator.Deactivate(true);
            }

            popup.IsOpen = true;
            popup.CaptureMouse();
        }