問題タブ [prism-6]
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.
c# - Prism 6 カスタム インタラクション InvalidOperationException が PresentationFramework で発生する
Prism 6 を使用して Word 2016 の TaskPane を実装しました。その Taskpane からモーダル ウィンドウを表示する必要があるため、prism カスタム インタラクションを実装しました。ウィンドウは、デリゲート コマンドにバインドされたボタンから開始されます。最初のクリックではすべてが期待どおりに機能しますが、2 回目のクリックでは例外が発生します。開発環境: VS2015、Office 2016、Windows 10 うまくいけば、誰かが私を正しい方向に向けることができます。ここにいくつかのより詳細な情報があります:
引き金:
通知の発生:
カスタム確認ビューモデル:
c# - Prism で INavigationAware を使用して非同期タスクを使用する
async
このメソッドが NOT の場合、インターフェイスを実装するメソッドにメソッドを呼び出す方法はasync
?
私の ViewModel にはasync
、ユーザーがビューに移動するたびに実行するメソッドがあります。
私が見つけた最速の(悪い)解決策はこれです
mvvm - Prism 6 と Behavior SDK でボタンを無効にする方法
私のメインページには、すべてのアイテムのリストビューがあり、ユーザーがそのうちの 1 つをクリックすると、詳細ページに移動します。詳細ページで、最後の項目にジャンプする最後のボタンを作成し、
これがページのビューモデルの一部です
リストビューの最初の項目をクリックするか、2 番目の項目からジャンプすると、最後のボタンが無効にならないことを除いて、ここではすべて正常に動作しますが、クリックしても何も起こりません。しかし、詳細ページに最初のアイテムが表示されている場合、ボタンを無効にしたいと思います。
wpf - PRISM を 4 から 6.1 にアップグレードした後、WPF アプリのロード動作が変更されましたか?
(これは以前に投稿した質問のバージョンです (削除された投稿)。1 か月間不在で、コメントに応答できなかったため、その質問は削除されました。ユーザー @StepUp と @Brian Lagunas に感謝します。彼らがそこで行ったコメント、およびそれらに応答しないことをお詫びします。)
1 か月前に、WPF アプリケーションを PRISM 4.0 から PRISM 6.1 にテスト アップグレードしました。ほとんどの場合、新しいアセンブリへの参照を変更し、基本クラスとメソッドが新しい名前を取得した部分を変更しました。
アプリケーションには、MainRegion である AnimatedTabControl で構成されるメイン メニューがあります。次に、さまざまなモジュールがメイン リージョンに登録されます。これらも、さらに多くのビューを含むさまざまなビューで構成できます。
PRISM 6.1 へのアップグレード後に私が見たのは、PRISM 4 よりも PRISM 6.1 の方が AnimatedTabControl でビューを切り替えるのに (初回) かなり長い時間がかかることです。 (多くのビューを持つモジュールの 1 つの場合)その中で、最初のクリックは 1.3 秒 (prism 4) から 5 秒以上 (prism 6.1) になりました。
さらに調査した結果、このパフォーマンスの変化の考えられる原因は、ViewModel のさまざまなコンストラクターが呼び出される時間が変化したことであることがわかりました。PRISM 4 の古いアプリでは、異なるビューの下にあるすべてのビューモデルがアプリケーションの起動時に呼び出されるようで、DB からルックアップ コレクションのロードが行われます。PRISM 6.1 にアップグレードした後、この読み込みは、ユーザーが特定のメニュー項目を初めてクリックしたときに延期されたようです。
これを変更した設定をどこから探し始めるべきかについて、誰かがいくつかの指針を持っているのだろうか. Brian Lagunas は、PRISM フレームワークに 4 から 6.1 までの変更はないので、私のアプリケーションにあるに違いないと言っています。アップグレード中に他のことを何も変更しないようにしましたが、それは非常によくあることです。どんなポインタでも大歓迎です。
よろしくゲルト
c# - プリズムは、wpf マルチプラットフォーム互換以外の他の GUI フレームワークで使用されますか?
Prism フレームワークを AvaloniaUI と一緒に使用できるかどうか、またその場合でもアプリがマルチプラットフォームになるかどうか疑問に思っていました。
現在、Windows しか持っていませんが、動作しますが、Linux/macOS でも動作しますか?
c# - Wpf Prism 6.2 Unity MVVM ガイダンスが必要
私はユニティでWPFプリズム4に取り組んでいました。そして、話題に戻ると、多くのことが変わったようです。
https://github.com/PrismLibrary/Prism-Samples-Wpfからサンプル プロジェクト「ModularityWithUnity.Desktop」をダウンロード済みです。
これは私にとっては少し奇妙です。タイプの登録はもうありません。ビューモデル、サービスは実行時にどのように解決されますか?
c# - ObservableCollection 内の Prism ObservesProperty
PersonList
のアイテムが を使用して変更された場合、どのようにトリガーできObservesProperty
ますか?
c# - 単一プロセスの UWP シナリオで TimeTrigger が起動しない
ここ数日、モニターに頭をぶつけていました。Windows ストア (14393 をターゲット) 用の UWP アプリを開発しており、MVVM / IoC 用に Prism/Unity フレームワークを使用しています。
ライブ タイルの更新に必要なデータはリポジトリ パターンを実装するクラスに格納され、すべてが Unity を介して管理されるため、バックグラウンド実行用の別のプロセスを作成していないため、BGTask 登録プロセス全体を簡素化しています。
実際の BGTask 登録コードは次のとおりです。
登録が正常に完了します。PowerShell で Get-AppBackgroundTask を実行すると、両方のタスクが表示されます。ただし、TimeTrigger は起動しません。TimeTrigger を MaintenanceTrigger に交換すると問題は解決しますが、スマートフォンを充電器に接続する必要がありますが、これは許容できる回避策ではありません。
VisualStudio または PowerShell (Start-AppBackgroundTask -TaskID) を介してタスクを強制的に実行すると、正しく実行され、タイルが更新されます。
他に役立つヒントはありますか?
編集 2017 年 12 月1 日 2 つのプロジェクトを持つ Visual Studio ソリューションを含む Repro を作成しました。
- ライブ タイル テスト シンプル: UWP を使用してライブ タイルを 15 分ごとに更新するのと同じくらい簡単です。すべてが期待どおりに機能します。
- Live Tile Test Prism: 繰り返しますが、上記のプロジェクトを Prism と Unity を使用して単純に変換したものです。OS がアプリを起動してタイルを更新しようとすると、Unity コンテナーが null (初期化されない) になるため、機能しません。
これは、私が問題を抱えている理由を説明しています: Unity が初期化されない、リポジトリ経由でデータを取得できない、アプリがクラッシュして GG.
Unity が OnBackgroundActivated メソッドで利用できない理由を理解する必要があります。もうすぐだ!
c# - DevExpress NavBarGroup の PRISM 欠落領域
PRISM 6 と NavBarControl / NavBarGroup で非常に奇妙な問題があります。
私のShell.xamlには次のものがあります
NavBarGroupのカスタムRegionAdapterを作成します。実装する必要があるメソッドCreateRegionは、新しい AllActiveRegion()を返します。このメソッドは 2 回ヒットするだけで、ReportsとAdministrationの新しいリージョンを返します。
ビジネスという名前の最初の地域がありません。最初に新しいグループを追加すると、そのリージョンがなくなり、次のグループが追加されます...
私にできることはありますか?
助けてくれてありがとう...