問題タブ [prism-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5268 参照

wpf - Prism Regions UpdateRegionsException

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

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

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

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

スローされる例外は

メッセージ:

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

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

0 投票する
1 に答える
2485 参照

wpf - WPF TabControl 内での PRISM リージョンの処理

私は WPF PRISM を使用しており、 をTabItem使用してナビゲートできるように追加する優雅なアプローチを探していRequestNavigateます。

これは、次のコードを使用して既に達成していますが、実際のビューではありません。実際、これらはタイトルを表示するのに役立っているだけですView1View2

実際の問題は、実際のビューをレンダリングするためにそこにある DataTemplate 内の領域も定義したことです。最初は、DataTemplate 内で定義されたリージョンについて RegionManager に知らせるという問題に直面していましたが、この素晴らしい投稿の助けを借りて、この問題を解決しました。

XAML でのタブ定義:

この問題に対する最善の解決策または他の効率的な方法を教えてください。

0 投票する
1 に答える
236 参照

prism - Region Inside DataTamplate が登録されていません。どうやってするの

DataTemplate 内にリージョンを作成したいと考えています。私の要件は、TabControl でビューを注入した後、Tab A、Tab B、Tab C と言うことができます。その後、Tab A 内にビューを注入できるように、Tab A 内に領域を作成したいと考えています。 StackPanel 領域内にビューを挿入できます。私を助けてください。

以下の提案を適用してもまだ成功していません。

http://southworks.com/blog/2011/11/10/regions-inside-datatemplates-in-prism-v4-using-a-region-behavior/

登録されていないエラー ビューをスローしています。

0 投票する
1 に答える
565 参照

c# - C#デリゲートが2回呼び出されましたか?

Prism の を使用して、複数のイベントがサブスクライブされる出力ウィンドウを作成しましたEventAggregator。これまでのところ、コンストラクターは 2 つの異なるイベントを処理しています。

SetTextどちらのイベントも、メソッドを介して同じ UI コンポーネントをターゲットにしています。

スレッド エラーを回避するためにデリゲートを作成しようとしています。

出力ホバーは次のとおりです。

出力は次のようになると思います。

また

しかし、2回呼び出されているようです。

0 投票する
1 に答える
889 参照

c# - Prism - region.add と regionManager.AddToRegion の動作が異なる

次の 2 つのコード ステートメントは類似しているという印象を受けました。

しかし、私のプロジェクトに示されているように、どちらも異なる結果をもたらします。驚いたことに、regionManager.AddToRegion ではスコープ領域を使用する必要はありませんが、region.Add ではスコープ領域が必要です。

repo を複製し、プロジェクトをビルドして実行してください。ViewB が既に登録されているという例外が発生するはずです。TestModule.cs (以下を参照) を開き、"region.add" 行にコメントを付け、regionManager.AddToRegion のコメントを解除すると、ソリューションが完全に機能することがわかります。

私はドキュメントを読み、region.Add と regionManager.AddToRegion を断続的に使用するプロジェクトを見てきましたが、API の動作が異なるようです。

https://github.com/rohits79/PrismRegionAmbiguity/blob/master/TestModule/TestModule.cs#L22-29

アップデート

AddToRegion を 3 行追加すると、アプリケーションが異常終了することに気付きました

ただし、2行しかかかりません

これは Prism の問題ではないように見えますが、スコープを作成せずに AddToRegion が機能するのはなぜでしょうか?

0 投票する
0 に答える
299 参照

c# - Prism Shell のリージョン数を変更する

ここに画像の説明を入力

こんにちは、ユニティで Prism 6 を使用しています。とナビゲーション ここに似ています

ユーザーがシェルでデータ テンプレート セレクターを使用しているために、ユーザーが WPF アプリで特定のチェックを通過した後、シェルの領域の数、形状、およびサイズを変更したいと考えています。1. 画像の左側は、最初のアプリケーション レイアウトを示しています。[DataTemplate1] 2 画像の右側は、認証後のアプリケーション レイアウトを示しています [DataTemplate2]。3.Shell.xaml.cs では、(認証後に) フラグを変更しています。イベント アグリゲーターの助けを借りて、テンプレート セレクターは適切なテンプレートを返します。[DataTemplate2] IRegion mainContentRegion = this._regionManager.Regions[RegionNames.MainContentRegion];

リージョン オブジェクトの作成中に例外が発生しました。- 最も可能性の高い原因となった例外は次のとおりです:'System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> Prism.Regions.Behaviors.RegionCreationException: 名前 '' の領域を作成中に例外が発生しました。例外は: System.ArgumentNullException: 値を null にすることはできません

Update1>> 前述のとおり、ここで提供されているナビゲーション サンプルを使用しています。ここに。デバッグすると、通常の場合、ナビゲーションの直前にリージョンマネージャーにほとんどregoinsがないことがわかりまし ここに画像の説明を入力たが、私の場合(シェルをテンプレート化した後)、リージョンマネージャーコレクションは空です(列挙は結果を生成しませんでした)後、リージョンコレクションを修正する必要があると思いますテンプレート シェル リージョン マネージャーのリージョン コレクションがリセットされます。Prismの専門家にアドバイスが必要です。