Призма общего региона - PullRequest
0 голосов
/ 06 июля 2018

У меня есть вопрос. Я создал регион с видом и моделью для «чтения PDF». Затем я добавляю эту «область чтения PDF» к двум элементам управления содержимым в двух пользовательских элементах управления. Я хочу переработать этот регион с видом и моделью

Программа чтения PDF-файлов - это только представление для отображения файла PDF.

Регистр загрузчика:

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

BaseNames class

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 (Регион IRegion) 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. Инициализировать (T regionTarget, String regionName) bei Prism.Regions.RegionAdapterBase`1.Prism.Regions.IRegionAdapter.Initialize (Объект regionTarget, String regionName) bei Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion (DependencyObject targetElement, String regionName). «

1 Ответ

0 голосов
/ 08 июля 2018

Если вы перейдете к View, который использует RegionManager, вы должны удалить свой Region из RegionCollection в RegionManager.

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