アプリケーションでさまざまなリージョンの複合アプリケーションビューを構築するために、これまでは常にコンテンツプレゼンターを使用し、DataBindingを使用してコンテンツを設定してきました。
コンテンツを変更したい場合は、イベントアグリゲーターを使用し、ViewZoneChangedEventを公開し、「シェル」ウィンドウでサブスクライブし、それに応じてビューモデルを更新して、新しいデータがバインディングとUIが更新されます。
さて、最近、Prismでそれらの地域に出くわしました。実際、しばらく見ていましたが、快適ではありませんでしたが、Prismはある種の「ベストプラクティスガイダンス」であるため、何かが足りない可能性があります。説明させてください。なぜ私は不快に感じるのですか。
私の古いやり方では、XAMLとの結合はありません。XAMLに存在する必要のある特定のマジックストリングについて言及することは決してありません。スタイルは変更される可能性があるため、これは不可欠だと思います。
少なくともリージョンがリージョン名のコンパイル時チェックを実行する場合(実際にどこかに存在することをチェック)、有効なリージョン名の使用を強制し、リファクタリング時に非常に役立ちますが、私が知る限り、そのようなことはありません。列挙型とToString
列挙型のメソッドを使用して文字列に変換し、領域名として使用する人もいますが、私が知る限り、入力された文字列が本当に有効であるかどうかを確認してエラーを表示する実際のルーチンはありませんたとえば、Brushes.InValidColorに対して行われる方法をコンパイルする場合。
だから、私の質問は次のとおりです:プレーンな古いバインディング(およびViewModels間で通信したい場合はeventAggregator)と比較して、プリズム領域はテーブルに何をもたらしますか?
リージョン名のコンパイル時の検証についての私の仮定は正しいですか?