Prism - региональный адаптер для управления контентом - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть приложение Silverlight, использующее Prism, и я использую ContentControl в качестве региона, как показано ниже:

<ContentControl RegionManager.RegionName="Demo"/>

В некоторых редких случаях приложение выдает исключение

"Этот элемент управления связан с регионом, но элемент управления уже связано с чем-то другим ".

Я проверил библиотеку призмы, и она выдает эту ошибку из метода ContentControlRegionAdapter.Adapt. В этом методе выполняется следующая проверка

if (regionTarget == null) 
    throw new ArgumentNullException("regionTarget");

bool contentIsSet = regionTarget.Content != null;
if (contentIsSet)
{
    throw new InvalidOperationException(Resources.ContentControlHasContentException);
}

В каком сценарии будет установлен contentIsSet?

Также есть ли проблема, если я уберу это условие и установлю представление для содержимого напрямую?

1 Ответ

0 голосов
/ 16 февраля 2012

Один из возможных сценариев

XAML

<ContentControl x:Name="mycontent" RegionManger.RegionName="MycontentRegion"/>

Codebehind

SomeView view = new SomeView();    
mycontent.Content = view;

В приведенном выше сценарии вы получите сообщение об ошибке, поскольку ваш контент-контроль связан с регионом, ногде-то в коде вы устанавливаете содержимое элемента управления контентом.

...