問題タブ [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.
.net - PRISMリージョンはナビゲーション中にコンテキストを失います
PRISMとそのナビゲーション機能を使用してアプリケーションを作成しました。このアプリにContext
は、現在ログに記録されているユーザーを含むメインリージョンがあります。この領域では、を使用してビューを動的にロードしますRegionManager.RequestNavigate
。ビューには、個別のビューモデルを持つ他のビューが含まれます。メインビューがアプリケーションのすべての時間に存在し、ビューから出て戻ったときのビューが以前と同じである、つまり再作成されないことを除いて、すべて問題ありません。私が行ったこと:メインビューモデルでは、falseに設定して実装INavigationAware
しました。IsNavigationTarget
ビューは毎回作成されますが、「すでに登録されているため、ネストされた領域を作成できた」という例外があります。次に、メインビューモデルで、falseに設定して実装IRegionMemberLifetime
しました。KeepAlive
それ'Context
コンテンツを失います。
どうすれば修正できますか?
ありがとう
アップデート:
質問を完全に理解するために、作業サンプルPrismNavigationSample.zipを用意しました。
両方のプロジェクトでこれを試してください。最初のビューに移動し、スライダーの値を変更し、戻って最初のビューに再度移動します。上のウィンドウのコンテキスト値も参照してください。
mef - MEF を使用して Prism 4 の CompositionContainer から新しいシェル インスタンスを取得する
Prism で MEF の奇妙な動作に遭遇しましたが、これについては説明できません。あまり満足していない方法を見つけたので、何が原因なのかを本当に理解したいと思います.
シェル ウィンドウ クラスをPartCreationPolicy
of で宣言しましたNonShared
。そして、シェルの新しいインスタンスを作成するためにCompositionContainer.GetExportedValue<>()
my の関数を使用しようとしています。MefBootstrapper
奇妙なことContainer.GetExportedValue<>()
に、シェルが作成される前に呼び出すShell
と、呼び出すたびに type の新しいオブジェクトが取得されます。ただし、シェルが初期化されるとContainer.GetExportedValue<>()
、シェルの同じインスタンスを返す呼び出しが繰り返されます。
シェルの初期化により、シェルのエクスポートが共有として再登録されるようです。
ただし、明示的にこれを達成しようとするブートストラップ コードの呼び出しは見当たりません。
誰でも説明できますか:
- この副作用を持つアクションは何ですか
NonShared
MEF/ServiceLocator を使用して複数のシェルを作成できるように、(可能であれば) 動作を復元する方法。
乾杯、
マーク
c#-4.0 - Prismのリージョンでビューをアクティブ化する
解決できないような問題があります。MEFとPrism4を使用してテストプロジェクトを作成しました。2つのビューがあり、それぞれがリージョン内に登録され、別のリージョンにボタンが登録されているテストプロジェクトを作成しました。ボタンがクリックされたとき、私は正しいビューに変更のビューが欲しいです。私が間違っていると思うコードは以下のとおりです、誰かが私がここで間違っていることについて何か考えを持っていますか?
次のエラーが発生します...
c# - 複合ビュー - ビューはリージョン エラーに既に存在します
私は WPF/Prism 4/AvalonDoc アプリケーションに取り組んでいます。
私のビューの 1 つが非常に複雑で、ViewModel が巨大で扱いにくくなっています。そこで、独自の ViewModel を持つ小さなビューに分割することにしました。
ビューにリージョンを配置し、「マスター」ViewModel コンストラクターから regionManager.RegisterViewWithRegion メソッドを使用してサブビューをそのリージョンにロードしました。
ビューのインスタンスが 1 つだけ読み込まれている場合、これは期待どおりに機能します。しかし、その画面の 2 番目のインスタンス (DocumentContent として AvalonDock の DocumentPane にロードされる) を開くと、「View already exists in region」というエラーが表示されます。
可能であれば、地域に一意の名前を付けることは避けたいと思います。「マスター」ビューの特定のインスタンスにサブビューを追加していることを示す方法はありますか? これを行う方法について何かアドバイスはありますか?
wpf - WPF Prism - Prism Regions を使用するポイントは何ですか?
私は、地域のポイントが何であるか疑問に思っています。私は彼らが解決する問題を理解していないと思います。
たとえば、多くの人がナビゲーション領域に領域を使用しているのを目にしますが、領域を持つ代わりに、ItemsControl を ObservableCollection にバインドし、さまざまなナビゲーション要素をその領域にロードしないのはなぜでしょうか?
代替案に対するその使用/利点の実例は驚くべきものです!
wpf - WPFPRISM4を使用した適切なアプリケーションのシャットダウン
MEFとPRISM4を使用するWPFアプリケーションをクリーンにシャットダウンするための「ベストプラクティス」(ベストプラクティスがある場合)を探しています。最終的には、シェルからアプリケーションを閉じても問題がないことを確認したいビューモデル(または他のサブスクライバー)までのすべてのイベント/コマンドを管理する、ある種の「サービスを閉じる」を探しています。イベントアグリゲーターは最もクリーンな方法ですか?他の意見/オプション?
理想的には、ToolbarRegion(シェルの2つの領域のうちの1つ)のToolbarViewにボタンがあります。このボタンは、ToolbarViewModelのコマンド(ToolbarControlerのコマンドを参照)を呼び出し、次に2つのことを実行します(私は思いますか?)...最初に、すべてのサブスクライバーにクローズ時間であることを通知し、いずれかのサブスクライバーがクローズをキャンセルできるようにしますそして...次に、キャンセルされない場合は、どういうわけかシェルに閉じるように通知します。私のアプリのシャットダウンモードは「ShutdownMode.OnMainWindowClose」に設定されているので、シェルが閉じたら、すべて設定されているはずです。
誰かがこれを手伝ってくれますか?
.net - UIなしでテストできるようにPrismアプリを作成することは可能ですか?
免責事項:プリズム初心者。私は失われた時間を埋め合わせるために猛烈に読んでいます:)
コンテキスト:Prismを使用して構築されたWPFアプリケーションの自動受け入れテストを作成する必要があります。
問題:バッキングViewModelと、UIなしで必要なすべてのものを作成しようとすると複雑になります。
ここで間違っているかもしれません...Prismを使用すると、名前付きプレースホルダー(リージョン)でシェルをマークアップできます。異なるモジュール(分離されたユニット)は、それらのビューを対応するRegionNamesに登録します。ビューは、MEF / Unityを介して注入されるViewModel(ctorインジェクション)にも依存します。
- ビューを表示しています
- 子ビューの作成をトリガーします(regionName =>ビューレジストリ)
- 子ビューモデルの作成をトリガーします(Mef ctorインジェクション)。
したがって、アプリの作成はPrism(またはより重要なのはView)に委任されます。これは、ビューファーストのアプローチのようです。これにより、UIを使用せずにアプリを起動するための作業にスパナがスローされます。UIでのテストは面倒です。
私が探しているのは、UIなしでオブジェクト全体(ViewModelと依存関係)グラフを構成するプレゼンターファーストアプローチです。
Prism4でアプリを別の方法で作成することは可能ですか、それともサポートされていませんか?
[更新:2011年12月]
http://compositewpf.codeplex.com/discussions/283065
プリズムフォーラムに投稿して光を当てます。それは不可能のようです。受け入れテストにはUIテストを使用することをお勧めします。PrismはUIを構成します; それにより、ビューに決定的な依存関係があります。
c# - すべてのモジュールがプリズム4にロードされているかどうかをどのように知ることができますか?
PRISMを使用するWPFデスクトップアプリケーションがあります。相互に依存しないモジュールが12個あります。シェルを起動するたびに、モジュールが読み込まれます。ポイントは、最後にどのモジュールが読み込まれるかを知りたいということです。アクションを開始できます。どうすればこれを判断できますか?
c#-4.0 - ボタンクリックコマンドで画像を更新する方法
ビューにはボタンとイメージ コントロールがあります。ボタン コマンドを ViewModel の delegateCommand にバインドしました。これにより、ユーザーがイメージを選択するためのファイル ダイアログが開きます。ビューのコンテキスト「オブジェクト」には、次のプロパティ「アイコン」が含まれています。 type byte[].Icon を Image コントロールにバインドしました。問題は、選択したイメージ ファイルをイメージ コントロールに表示する方法です。
Xaml:
windows-phone-7 - Windows Phone で InteractionRequestTrigger を使用するには?
Windows Phone で* InteractionRequestTrigger *を使用するには?
アセンブリMicrosoft.Practices.Prism.InteractivityまたはアセンブリMicrosoft.Practices.Prismにこのクラスが見つかりません。サンプルコードを見つけるのを手伝ってください。