やろうとしていることを達成するには、いくつかの方法があります。説明の中で「View-Model」という用語に数回言及していますが、これにより、WPF または Silverlight テクノロジを使用するときに一般的なデザイン パターン「MVVM」(Model-View-ViewModel) を使用しようとしていると思われます。ビューに対するデータバインディングのサポートなどですが、他のテクノロジーにも拡張できます。
MVVM では、層はモデル、ビューモデル、およびビューに分割されます。
モデルは本質的にドメインであり、ドメイン固有のモデリングにのみ使用されます。アプリケーション エンティティはここに存在する必要がありますが、計算やドメイン エンティティの操作は行わないでください。例えば。それがサイクリング ドメインである場合、'Bike' および 'Rider' クラスはここに存在する必要がありますが、レースの勝者の計算、またはアプリケーション GUI で勝者を表示する色に関連するコードはありません。
View-Modelは、View (ユーザー インターフェイス) に表示されるドメイン エンティティを準備する場所です。ドメイン エンティティを新しいクラスにラップし、コンストラクターでドメイン オブジェクトを受け取りますが、既存のプロパティをビューに表示するプロパティに公開または変換することで、ほとんどの場合これを実現できます。サイクリングの類推では、Bike オブジェクトには Make、Model、Cost、RRP、TimeBuilt のプロパティが含まれている可能性があるため、ビュー モデルでは Make、Model プロパティを公開しますが、Cost と RRP をマージンと共に変換して、小売価格を考え出します。価格(フロントエンドに表示)。
ご想像のとおり、 Viewは、この情報が表示される場所です。これは、デスクトップ、モバイル、または Web フロント エンドである可能性がありますが、実際には問題ではありません。これは、UI のレンダリングを行う場所でもあります。お客様にお得な情報を強調し、小売価格が非常に高いバイクを緑色で色付けしたい場合は、ここで行います。
したがって、あなたの例に関連する場合、オブジェクトの表示方法のフォーマットはビューで達成する必要があります。MVVM を使用していない場合でも、ドメイン オブジェクトを Wrapper クラスに拡張してデプロイおよび操作することで、非常によく似た結果を得ることができます。次のようなあなたのルール
A が 'xxx'、'zzz' にあり、B = 0 または D > 200 の場合、セルの背景を強調表示します
ビューモデルクラスのブール値でモデル化でき、ドメインオブジェクトを非固有のコードで汚染することなく、必要な効果を得ることができます.
アーキテクチャの選択 (MVC、MVP、MVVM など) に関係なく、これらはアプリケーションのレイヤー間の関心の分離を展開するため、開発するのに適したガイドラインです。