我使用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会是真的吗?
如果删除该条件并将视图直接设置为内容,也会出现任何问题吗?
答案 0 :(得分:0)
一种可能的情况
XAML
<ContentControl x:Name="mycontent" RegionManger.RegionName="MycontentRegion"/>
代码隐藏
SomeView view = new SomeView();
mycontent.Content = view;
在上面的场景中,您将收到一个错误,因为您的contentcontrol与一个区域相关联,但代码中的某个位置设置了内容控件的内容。