Prism - 用于内容控制的区域适配器

时间:2012-02-15 09:38:49

标签: c# silverlight prism region

我使用Prism的Silverlight应用程序,我使用ContentControl作为区域,如下所示:

<ContentControl RegionManager.RegionName="Demo"/>

在极少数情况下,应用程序会抛出异常

  

“此控件与某个区域相关联,但控件是   已经绑定了其他东西“。

我检查了prism库,它从ContentControlRegionAdapter.Adapt方法中抛出了这个错误。在这个方法中,它正在进行以下检查

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

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

在哪种情况下,contentIsSet会是真的吗?

如果删除该条件并将视图直接设置为内容,也会出现任何问题吗?

1 个答案:

答案 0 :(得分:0)

一种可能的情况

XAML

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

代码隐藏

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

在上面的场景中,您将收到一个错误,因为您的contentcontrol与一个区域相关联,但代码中的某个位置设置了内容控件的内容。