2012-02-15 5 views
0

私はプリズムを使用してSilverlightアプリケーションを持っていると私は、領域として以下のようなもの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がtrueになりますか?

また、その条件を削除してコンテンツに直接ビューを設定すると問題はありますか?上記のシナリオでは

答えて

0

一つの可能​​なシナリオ

XAML

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

分離コード

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

あなたのContentControlには、地域に関連付けられているが、どこかのコードでは、あなたしているためエラーが発生しますコンテンツコントロールの内容を設定します。

関連する問題