棱镜共享区域

时间:2018-07-06 11:16:36

标签: c# prism region

我有一个问题。我为“ pdf阅读器”创建了一个具有视图和模型的区域。然后,我将此“ pdf阅读器区域”添加到两个用户控件中的两个内容控件中。我想用视图和模型回收该区域

pdf阅读器仅是显示pdf文件的视图。

引导程序寄存器:

regionManager.RegisterViewWithRegion(BaseNames.PDF_VIEW_REGION, typeof(
                    Infrastructure.Base.Views.PdfView));

BaseNames类

public static class BaseNames
{
    public const string PDF_VIEW_REGION = "PdfViewBaseRegion";
}

查看1

<ContentControl Grid.Column="1" prism:RegionManager.RegionName="{x:Static contract:BaseNames.PDF_VIEW_REGION }"/>

查看2

<ContentControl Grid.Column="1" prism:RegionManager.RegionName="{x:Static contract:BaseNames.PDF_VIEW_REGION }"/>

例外:

  

Prism.Regions.Behaviors.RegionCreationException:“创建名称为'PdfViewBaseRegion'的区域时发生了异常。该异常是:System.ArgumentException:具有给定名称的区域已被注册:PdfViewBaseRegion      bei Prism.Regions.RegionManager.RegionCollection.Add(区域区域)      bei Prism.Regions.Behaviors.RegionManagerRegistrationBehavior.TryRegisterRegion()      bei Prism.Regions.Behaviors.RegionManagerRegistrationBehavior.StartMonitoringRegionManager()      bei Prism.Regions.Behaviors.RegionManagerRegistrationBehavior.OnAttach()      bei Prism.Regions.RegionBehavior.Attach()      bei Prism.Regions.RegionBehaviorCollection.Add(字符串键,IRegionBehavior regionBehavior)      bei Prism.Regions.RegionAdapterBase 1.AttachDefaultBehaviors(IRegion region, T regionTarget) bei Prism.Regions.RegionAdapterBase 1.Initialize(T regionTarget,String regionName)      bei Prism.Regions.RegionAdapterBase`1.Prism.Regions.IRegionAdapter.Initialize(Object regionTarget,String regionName)      bei Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion(DependencyObject targetElement,字符串regionName)。 “

1 个答案:

答案 0 :(得分:0)

如果导航到使用RegionManager的View,则应从RegionManager的RegionCollection中删除Region。

    public void OnNavigatedFrom(NavigationContext navigationContext)
    {
    navigationContext.NavigationService.Region.RegionManager.Regions.Remove(BaseNames.PDF_VIEW_REGION);
    }