2012-03-22 4 views
1

MVVM、Entity FrameworkおよびWCFサービスを使用するWPFアプリケーションがあります。EFエンティティまたはViewModelへのデータバインド

エンティティクラスがすでにINotifyPropertyChangedを実装しているように、私は自己追跡エンティティを作成しました。 これらのクラスのプロパティを直接データバインドするか(メインのViewModelにObservableCollection<Author> Authorsプロパティを持つなど)、同じプロパティを持つViewModelを作成する必要がありますか(メインViewModelのプロパティはObservableCollection<AuthorViewModel> Authorsです)。

別の質問、タイトルに関連していないが、よく。 STEを使用する前に、自分のエンティティにPOCOクラスを使用していましたが、シリアル化できず、WCFサービスで問題が発生しました。簡単な解決法はありますか?

+2

POCOがシリアル化できないのはなぜですか?取っておかなければならないのは、1つまたは2つの報酬です。 –

+0

生成されたPOCOクラスは変更できますか? – Peekyou

+0

POCOを生成するテンプレートを変更して、適切な属性を追加する方がよい。 –

答えて

1

お勧めの答えは、ObservableCollection<AuthorViewModel>を使用することです。追加のUI固有のロジックを実装する必要がある場合、そのロジックはモデルではなくViewModelになければならないからです。私の経験では、一貫性のためだけにモデルをビューモデルにラップするのは、常により洗練されています。

+0

viewModelでモデルをラップすることに同意すると、モデルを変更せずにviewModel固有の変更を行うことができます(モデルがEF POCOの場合は特に便利です) – Erick

関連する問題