私の質問は私が取り組んでいるWPFアプリケーションから来ているにもかかわらず、これはユーザーインターフェイスの設計とプログラミングパターンに関する一般的な質問です。階層データよりもLOBアプリケーションを構築するためのエレガントなUIパターン?
データモデルが階層型で階層が> 2レベル以上の場合、データ駆動型ユーザーインターフェイスを表示するためのきれいでエレガントなパターンは何ですか?最もクリーンなのは、繰り返しの少ないコード(すべてのデータモデルタイプのフォームをコーディングするのに比べて)が少なく、少しの退屈さを必要としないアプローチです。たとえば、反射に頼っているかもしれません。私はこれがネストされたデータグリッドを持っている理由だと思います。行の詳細テンプレートに子オブジェクトをネストすることができます。ほぼすべてのLOBアプリは階層的なデータに依存しているので、誰かが既にこの問題を解決しているに違いありません。
しかし、この問題は、マスターグリッドに多くの異なる子ディテールグリッドがあるとどうなりますか?ユーザーインターフェイスは詳細グリッドで混乱して見えることがあり、マスターグリッドにネストされ、互いの上に積み重ねられます。
私は、マスターグリッドにネストされたタブコントロールを試してみてください。別の方法は、新しいビューで新しいデータグリッドを開き、グリッドをネストしないことですが、最初にすべてのグリッドに対して新しいビューを作成するのは、私が避けようとしている退屈な作業のようです。
階層型データモデルで "text boxes over data" LOBアプリケーションを作成する代わりに、各ビュー(およびビューモデル)を1つずつコーディングする以外にも、クリーンな方法がありますか?
viewmodelは、通常、私のアプリの中で最も柔軟な部分であり、私が最もコントロールしている部分です。 UIコントロールとモデルは、特にコントロールが第三者である場合は、比較的静的です。 UIコントロールが提供するプレゼンテーションオプションは、ビューモデルのデザインを促進する可能性があります。データグリッドを持つか持っていないかは、アプリケーションの表示に影響し、それに応じてビューモデルが変更されます。 –