問題タブ [prism-4]

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 投票する
3 に答える
8259 参照

c# - PRISM でナビゲーションが発生するたびに新しいビューを作成する方法は?

新しいプロジェクトに WPF4 と PRISM4 を使用しています。

複数のビューを含む単一のモジュールがあります。DIはユニティで行われます。初めて ViewA から ViewB に移動すると、ViewB が作成され、そのコンストラクターが呼び出されます。しかし、2 回目、3 回目に ViewB に移動しようとすると、ViewB は作成されませんが、既存のインスタンスが再利用されます。

ナビゲーション目的でIRegionManager.RequestNavigateを使用しています。

TransientLifeTimeManagerRegisterType Unity メソッドに渡そうとしましたが、役に立ちませんでした。

移動するたびに新しいビューを作成するようにプリズムやユニティを構成する方法はありますか?

ありがとう。

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

c# - Prism 4: RequestNavigate() が機能しない

Prism 4 のナビゲーション機能を学習するデモ アプリを作成しています。アプリには 2 つのモジュールがあり、それぞれに 3 つのビューがあります。

  • テキスト ブロックを含む UserControl (「モジュール A へようこそ」)
  • RibbonTab (Region Adapter を使用)、および
  • Outlook スタイルのタスク ボタン (Outlook のメール、カレンダーなど)

シェルには、"RibbonRegion"、"TaskButtonRegion"、および "WorkspaceRegion" の 3 つの名前付き領域があります。ビューはこれらのリージョンにロードされます。基本的なセットアップをテストするために、3 つのビューすべてを Prism Region Manager に登録して、起動時に読み込まれるようにし、すべてが期待どおりに機能するようにしました。

次に、起動時にタスク ボタンのみが読み込まれるように設定を変更しました。他のビューは、タスク ボタンをクリックすることによって、要求があった場合にのみロードされます。私のモジュール初期化子は次のようになります。

IRegionManager.RequestNavigate()ユーザーがタスク ボタンをクリックすると、ビューを表示するために呼び出す ICommand オブジェクトが呼び出されます。

タスクボタンがクリックされるとコマンドが呼び出されますが、得られるのは次のとおりです。

デモアプリのスクリーンショット

UserControl は明らかに としてロードされておりSystem.Object、RibbonTab も同じものをロードしていると思われます。問題は私のRequestNavigate()通話、または Unity への登録にあると思います。しかし、私は問題を特定できません。

何が起こっているのか、誰かが光を当てることができますか? ご協力いただきありがとうございます。

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

c# - Prism 4:ItemsControlでアイテムを非表示にする方法は?

ビューの切り替えに焦点を当てて、新しいフレームワークを学習するためにPrism4デモアプリを作成しています。アプリにはいくつかのリージョンがあり、そのうちの1つは、現在アクティブなモジュールの1つ以上のボタンを保持するItemsControlです。

各モジュールのInitilize()メソッドでリージョンマネージャーにボタンを登録しています。最初のモジュールの登録コードは次のとおりです。

2番目のモジュールは、同じ方法でボタンを登録します。RequestNavigate()私は2つのモジュールを切り替えるために使用します。

これが私の問題ItemsControlです。アクティブなモジュールのボタンだけでなく、両方のモジュールのボタンがに表示されます。ItemsControlをaに変更しContentControl、ボタンをに配置することを検討しましたStackPanelが、ここでは退屈させないため、うまくいきません。私がする必要があるのは次のいずれかです。

  • モジュールがアクティブ化されたときにボタンをロードし、他のモジュールに切り替えたときにボタンをアンロードします。

  • モジュールがアクティブ化されているときはボタンを表示し、他のモジュールに切り替えるときはボタンを非表示にします。

Prism 4でそれを行うにはどうすればよいですか?ご協力いただきありがとうございます。

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

c# - Prism4 MEF でクラスのインスタンスを作成するにはどうすればよいですか?

コンテナを構成しました:

モジュールでタイプ T のインスタンスを作成するにはどうすればよいですか? 型 T は、MEF によって構成されるアセンブリのどこかに定義されています。

私はこのようなものが必要です:

UPD1. マイモジュール

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

c# - PRISM + MEF -- サービスのインポート

ViewModel にサービスを適切にインポートする方法を見つけようとしています...ここに関連するコードがあります (重要でないものは省略しました):

ClientBootstrapper.cs :

ClientShell.xaml.cs :

ClientViewModel.cs :

RandomService.cs :


すべてのインポート部分が満たされているという通知を受け取ります (1) がreturn Random.Next();、ClientViewModel の内部で NullReferenceException (2) を受け取ります。すべてのインポートが満たされていると言われた後、なぜ NullReferenceException が発生するのかわかりません...

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

silverlight - Silverlight 4 + Prismは、シェルのヘッダーバーに動的な文字列を追加します

Prism4を使用してSilverlight4アプリケーションを構築しました。shell.xamlにいくつかのコンテンツ領域を作成しましたが、すべてが正常に機能しています。ここで、次のことを実行します。shell.xamlには、レイアウトにヘッダーバー(以下に示すラベルがあります)があります。そこで、メインコンテンツ領域に表示されるビューに応じて、ヘッダー文字列の値を動的に変更します。これを簡単な方法で達成する方法についてのアイデアはありますか?

ありがとうございました!

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

silverlight-4.0 - Prism RegionManager と Unity コンテナの問題

私はメインの Silverilght プロジェクトと他のモジュールを持っており、Prism を使用して依存性注入のために Unity と一緒にそれらを接着しています。

に依存するモジュールの 1 つがIRegionManagerあり、当然、Unity によって注入されます。

私が実行している問題は、次のようにシェルで2つを宣言したにもかかわらず、取得したのRegionsプロパティにリージョンが含まれていないことです。RegionManager

この動作の理由がわかりません。RegionManagerを使用してシングルトンとして登録しようとしました

団結を離れるだけでなく、これを処理します。しかし、私は同じ結果を得ました:(

私が達成しようとしているのは、特定の領域にビューを挿入してアクティブにすることです。これは、

そのため、「MainRegion」オブジェクト自体を取得して操作する必要があります。

誰かがこれを理解してくれることを願っています。とても感謝しています:)

編集:ビューの検出は問題なく機能することに言及する必要がありますが、のプロパティRegisterViewWithRegionを確認すると、空であることがわかります!RegionsRegionManager

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

wpf - アプリケーションの起動時に Prism ビューをプリロードする方法は?

Prism 4 を WPFに使用し、Prism に付属するナビゲーション機能も使用します。

アプリケーションで特定のビューに移動 (読み込み) するときに、遅延に気付きます。これは、ビューとその依存関係をインスタンス化することから当然発生します。これには、ディスクからの必要なアセンブリの読み込みが含まれます。

スプラッシュ画面などを表示しながら、アプリケーションの起動時にこれらのビューをプリロードしたいと考えています。

誰かが似たようなことをしたことがあり、その経験を共有したいですか?

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

wpf - WPF、プリズム、MEF。モジュール内にリージョン アダプタを登録しますか?

モジュール内にリージョン アダプタを登録することはできますか?

Shell.xaml に ContentControl をリージョン "MainRegion" に設定しており、現在、AvalonDock コントロールを含むモジュールが取り込まれています。現在、シェル アプリに AvalonDock リージョン アダプターがありますが、それをモジュールに配置してそれ自体を登録したいと考えています。AvalonDock 以外のものを使用することにした場合に、シェル アセンブリを変更する (avalondock リージョン アダプターを削除する) ことなく、別のモジュールを簡単に使用できるように、このプログラムの柔軟性を維持したいと考えています。

このようなことが可能だと思います。誰もこれを以前にやったことがありますか?

現在、ブートストラップでは次のとおりです。

これは、シェル ブートストラップの代わりにモジュールで実行したいことです。

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

wpf - MEFとWPFを使用してPrismのitemscontrolにビューを追加する方法

これまでのところ、ビューが2つしかないアプリケーションがあります。ビュー1はリストで、2番目は詳細ビューです(ビュー1でアイテムを選択した後)。

Prismシェルにリージョンを設定し、モジュールをロードできます。私が欲しいのは、モジュール1だけを最初にロードすることです。1からアイテムを選択したら、2に移動します(これは、itemsコントロール(ちなみに、タブコントロールです)に表示されます)。

私が抱えている問題は、a)両方のビューが最初にタブコントロールに表示されることです。

b)ビューbのモジュールのエクスポート属性をオンデマンドで初期化するように変更した場合、クリックしてビューbに移動しても、何も起こりません。

どんな助けでも大歓迎です。ありがとう。