private void CloseViewInternal(CloseViewRequest request)
        {
            var region = null as IRegion;
            var regionManager = request.RegionManager ?? MainRegionManager;

            // Only deactivate the view if it exists
            if (regionManager.Regions.ContainsRegionWithName(request.RegionName))
            {
                region = regionManager.Regions[request.RegionName];
                if (region.HasViewByParameter(request.Parameter))
                {
                    var view = region.GetViewByParameter(request.Parameter);
                    var viewWindow = view as Window;
                    if (viewWindow != null)
                    {
                        viewWindow.Close();
                    }
                    else
                    {
                        if (region == null)
                        {
                            throw new InvalidOperationException(
                                string.Format(
                                    CultureInfo.InvariantCulture,
                                    "The region '{0}' does not exist.",
                                    request.RegionName));
                        }

                        region.Remove(view);
                    }
                }
            }
        }
Example #2
0
        private void CloseViewInternal(CloseViewRequest request)
        {
            var region        = null as IRegion;
            var regionManager = request.RegionManager ?? MainRegionManager;

            // Only deactivate the view if it exists
            if (regionManager.Regions.ContainsRegionWithName(request.RegionName))
            {
                region = regionManager.Regions[request.RegionName];
                if (region.HasViewByParameter(request.Parameter))
                {
                    var view       = region.GetViewByParameter(request.Parameter);
                    var viewWindow = view as Window;
                    if (viewWindow != null)
                    {
                        viewWindow.Close();
                    }
                    else
                    {
                        if (region == null)
                        {
                            throw new InvalidOperationException(
                                      string.Format(
                                          CultureInfo.InvariantCulture,
                                          "The region '{0}' does not exist.",
                                          request.RegionName));
                        }

                        region.Remove(view);
                    }
                }
            }
        }
 /// <summary>
 /// Closes the selected view.
 /// </summary>
 /// <param name="request">The request which indicates which view to close.</param>
 private void CloseView(CloseViewRequest request)
 {
     Action action = () => CloseViewInternal(request);
     if (DispatcherContext.IsSynchronized)
     {
         action();
     }
     else
     {
         DispatcherContext.Invoke(action);
     }
 }
Example #4
0
        /// <summary>
        /// Closes the selected view.
        /// </summary>
        /// <param name="request">The request which indicates which view to close.</param>
        private void CloseView(CloseViewRequest request)
        {
            Action action = () => CloseViewInternal(request);

            if (DispatcherContext.IsSynchronized)
            {
                action();
            }
            else
            {
                DispatcherContext.Invoke(action);
            }
        }