2

リージョン マネージャーに 2 つのリージョンを登録するアプリケーションがあります。1 つはコンテンツ コントロールで、もう 1 つはカスタム コントロールです。RDPセッションを使用してみるまで、アプリケーションを実行するときはどちらも問題ありません。アプリケーションを実行しているリモート マシンから切断し、アプリケーションを実行したまま RDP に再接続すると、カスタム コントロールが既に登録されているという例外が発生します。どちらも RegionMeneberLifetime が false に設定されています。

コンテンツ コントロールは最初に追加されます。

<ContentControl x:Name="MainRegion" Panel.ZIndex="0"
regions:RegionManager.RegionName="{x:Static sharedInterfaces:RegionNames.MainWorkspaceRegion}"
regions:RegionManager.RegionManager="{Binding RegionManager}"/>

そしてカスタムコントロール

<controls:PopUpContainer regions:RegionManager.RegionName="{x:Static sharedInterfaces:RegionNames.PopupRegion}" 
                                 regions:RegionManager.RegionManager="{Binding RegionManager}"/>

カスタム コントロールは ContentControl から継承します。

スローされる例外は

メッセージ:

「MainWorkspaceRegion」という名前の領域を作成中に例外が発生しました。例外は: Microsoft.Practices.Prism.Regions.UpdateRegionsException: 領域オブジェクトの作成中に例外が発生しました。- 最も可能性の高い原因となった例外は次のとおりです。---> Microsoft.Practices.Prism.Regions.Behaviors.RegionCreationException: 'PopupRegion' という名前の領域を作成中に例外が発生しました。例外は次のとおりです: System.ArgumentException: 指定された名前のリージョンは既に登録されています: PopupRegion

ポップアップ領域が破棄されていないようで、再度追加しようとすると爆発します。これを処理する方法について何か提案はありますか?

4

2 に答える 2

4

追加することを確認してください

regions:RegionManager.RegionName="{x:Static sharedInterfaces:RegionNames.PopupRegion}

アプリケーション全体で一度だけ。

同じ名前のリージョンが 2 つある場合、この例外が発生します。

(コメントするには十分な評判がありません)

于 2016-01-12T17:02:16.907 に答える