2011-02-06 18 views
0

LINQから生成されたCustomerクラスがあります。このクラスは多くの場所で使用されています。私は顧客のコレクションをDataGrid(WPF)にバインドできます。 DataGridに余分な列を追加したいと思います。列データは、Customerクラスの使用方法によって異なります。私が試した選択肢は次のとおりです。WPF DataGrid:カスタムプロパティにバインドする方法

  1. 追加クラスをCustomerクラスに追加します。これは機能しますが、プロパティはクラスの使用方法に依存するため、ここに属しません。
  2. Customerから派生する別のクラスを作成します。これは、私たちが派生クラスに顧客をキャストできず、顧客のリストがデータベースから返ってくるものであるため、機能しません。
  3. Customerを含む別のクラスを作成し、関連するすべてのプロパティを再インプリメントします。これは醜いです。
  4. 目的のプロパティの拡張メソッドを作成します。残念ながら、DataGridカラムを拡張メソッドにバインドすることはできません。

この時点では、これらのオプションは機能しないか、理想的ではありません。私はどんな提案も感謝します。

答えて

0

これはビューモデルの仕事のように聞こえるので、私はオプション3を好きにしてCustomerモデルをラップし、必要な追加プロパティを追加するCustomerViewModelを作成します。私は、この追加のプロパティは表示目的のためだけだと仮定しているので、それをCustomerモデルに追加するのは嫌です。

関連する問題