モデルをすべてWPFアプリケーション用にセットアップし、最初にエンティティフレームワークのctp5コードを操作します。次に、サンプルモデルクラスを示します。
public class Task
{
public int ID { get; set; }
public int Index { get; set; }
public string Content { get; set; }
public int Indentation { get; set; }
public DateTime Start { get; set; }
public decimal Effort { get; set; }
public decimal CompletedEffort { get; set; }
public decimal Cost { get; set; }
}
ビューモデルを構築するための推奨される方法は何ですか?私のビューモデルはINotifyPropertyChangedを実装しますが、モデルクラスにUI固有のコードを持たせたくないので、他のアプリで簡単に再利用できます。すべてのモデルプロパティを仮想にしてから、ビューモデルでそれらをオーバーライドする必要がありますか?(多くの不要なコーディングのようです...)EFコードは、最初にこのタイプのフォーマットでうまく機能しますか?
編集 これはやや似た質問ですMVVMでは、ViewModelまたはModelはINotifyPropertyChangedを実装する必要がありますか? ただし、唯一の解決策は、UIロジックであると私が考えるものをモデルに追加することであるように見えます。おそらく、ある種のデリゲートをモデルに追加し、ビューモデルからそれにフックすることができます。これにより、INotifyPropertyChangedが使用されます...このようなものですか?
public class Task
{
public delegate void HandleChange(string propertyName);
public HandleChange ChangeHandler;
public int ID
{
get
{
return ID;
}
set
{
if(ID != value)
{
ID = value;
ChangeHandler("ID");
}
}
}
...