入門
Prismはまた、前に学んだが、フレームワークのない深い理解がなかった、プロジェクトが今のプログラムにWinフォームWPFデスクトップアプリケーションを変換しようとしている、と私はプログラムが良いアーキテクチャを維持するためにテストすることにしたい、これらの設計のプリズムは、私に合います私は、ソースコードも触発された参照の為替を議論することを歓迎した後、緩やかに結合され、メンテナンス性、テスト可能なアプリケーション・フレームワークを構築するため、主にWPFとXamarinのために、求められています。
始めます
私は、各機能の導入を達成する方法で参照するには、サンプルの正式オーダーから始めましょう。
0、PrismApplicationBase
まず、このクラスは、すべてのプリズムの機能と全体的な枠組みを構築し、起動している、このクラスについて教えてください。このクラスのメソッドのほとんどは、仮想メソッドは、いくつかのカスタマイズされた機能を追加するためにオーバーライドすることができます、Prismはまた、我々がそのように設計されていることを願っています。
プリズムを通して、UnityContainerはどこにも、もはや、それは必要なときに、大きなコンテナは、リゾルバをすべてのクラスを保持しています。
二つのフィールド、UnityContainer上ContainerExtension、記事ではもちろん、あなたができるまた、カスタマイズ他の容器があり、また、公式の説明を与えるコンテナのデフォルトUnityContainerコンテナであります
ModuleCatalogは、モジュールをロードする方法の定義であるモジュールは大きな利点プリズムであり、公式の説明を与える、意図は千の言葉の価値があります
すべてはこのクラスのプリズムのすべての機能を搭載した、クラスからPrismApplicationBaseを始めています。
最も重要な方法を見て、それがその主な仕事適当な容器に注入し、インフラストラクチャモジュール、RequireTypes、RegionAdapterMappings、RegionBehaviorsにあるこのプロセスでの機能のほとんどを完了しました。
ここで感じるには、いくつかの方法があります
サブクラスでPrismApplicationBase上で検索します
私が先に言ったように、書き換え方法、最初の呼び出しBase.Method、その後は独自の機能を追加します
ただ、開発者のための2つの方法が書き換えられます
メインフォームとRegisterTypesメソッドを作成し、我々はビルドに必要ないくつかの基礎を追加することができます第二の方法は、実際にはContainerRegistryはユニティコンテナを登録しました
楽しいことの例で見てみましょう。29の合計例であるプリズム試料-WPFマスター、https://github.com/PrismLibrary/Prism-Samples-Wpf
1、BootstrapperShell
見てみると、メインフォームを作成するには、コンテナを通じて、瞬間のためにファイル名を指定して実行をBootstraperを作成するビットを表示することです。
実際には、記事は、ブートストラップであるか、を見てください
これら2つのクラスを参照してくださいすることが突然実現の感覚ではない、オリジナルのブートストラップは何ですか?PrismApplicationBase方法はこの瞬間を再実装し、アプリケーションのすべてから抽出することで、これはシングル責任原則のですか?
ファイル名を指定して実行を見て、これらの方法はそれにあまりにも精通しています。
、そこを使用する方法をログに記録し、その後、もちろん、記録を作成することで、すべての情報は様々な方法を作成するためのリソースに入れて、新しい最も簡単なものを選びます
2、地域
これは、リージョンを作成するだけです
一目ああ、作成RegionManager ContentControlに依存関係プロパティを使用している地域。
あなたはRegionManagerを見て古典的な3つの問題、で、あなたはどこへ行く、から来ます。
ああ!あなたは、ああ、非常に強力な横柄な若い男です。その上でチェックを見てください。
ルックRegionNameは、プロパティがコールを変更した場合、依存関係プロパティが存在しているはず
IsInDesignModeは、コール、VSモードの設計かどうかを決定することです
ああ、または遅延読み込みを使用するか、またはコンテナが作成され、プリズムのほぼすべてのクラスは、コンテナによって作成されます
行動?行動のWPFの内部は、あなたがそれディスク必要なときに、脇に依存関係プロパティを入れているサービスああ、です。行って見て
非常に標準サービス。
弱参照の使用、素晴らしいデザインは、あまりにも、それについて考えます、
インターフェイスは、Loadイベントによってロードされたときに遅延読み込みを実装し、ああ、素晴らしい、リージョンが作成されました。
ロードは一度だけトリガ。私は、無線化を巻き、WireUp言葉を言っています
その後、初期化アダプターによって作成された検索RegionAdapterをRegionAdapterMappingに、名前で作成されました。
RegionAdapterMappingはRegionAdapterのコレクションです
リージョンを作成し、動作を追加
行動は何ですか?
リージョンを作成すると、それを完了しました。
地域の公式ドキュメントを見てください
3、CustomRegions
あなたはREGINをカスタマイズしたい、それは確かにRegionAdapter、カスタムを作成することになりますStackPanelRegionAdapter
ただ、これらを理解するためのソースコードを読み取ることによって、それが難しいようではありません。
概要
Bootstapper、RegionAdapterを作成し、カスタマイズする方法のリージョンの下でソースコードを探索することで、優しくベールにプリズムを少し持ち上げました。機能やアイデアの多くは、私はあなたを歓迎し、学習を探るために、あります。