1

多対多の関係を持つエンティティモデルがあります。類似性のために、その車のエンティティと機能(CDプレーヤー、ムーンルーフなど)のエンティティを想定します。

車のエンティティを編集するSilverlight/WPFフォームがあります。可能な機能のリスト(機能テーブルのすべて)をチェックボックスのリストにしたいのですが。その部分は簡単です。ただし、チェックボックスをオンにしてチェックを外すと、その機能と車の関連付けが追加/削除されるように、チェックボックスをバインドするエレガントな方法を考えています。

これは古き良きWinFormsスタイルのイベントハンドラーで簡単に実行できることは知っていますが、プレゼンテーションとロジックを分離しておくことができるように、データバインディングを使用してこれを実行する方法があるかどうかを知りたいです。

4

1 に答える 1

1

MVVMプレゼンテーション パターンを見たことがありますか?

バインドする ViewModel クラスを作成することをお勧めします。このクラスにはHasSunroof、バインド先のチェックボックスなどのプロパティを含めることができます。これらのプロパティの set メソッドでは、関連するプロパティ (Sunroofプロパティなど) を変更できます。

別の方法は、を使用することIValueConverterです。実際のプロパティにバインドします (たとえばSunroof)。Sunroofコンバーターで、の値がnull と等しくない場合は true (チェック済み) を返し、そうでない場合は false を返します。( ConvertBack) 関数は、IsChecked が true に等しい場合を、プロパティに必要なオブジェクトに変えることができます。

于 2009-04-21T15:04:46.913 に答える