Моя модель полностью настроена для моего приложения WPF, и сначала я работаю с кодом ctp5 entity framework, вот образец класса модели:
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, я не хочу, чтобы классы моделей имели какой-либо конкретный код пользовательского интерфейса, чтобы их можно было легко повторно использовать в других приложениях. Должен ли я сделать все свойства модели виртуальными, а затем переопределить их в модели представления? (кажется, много ненужного кода ...) Будет ли код EF хорошо работать с этим типом формата?
Изменить Это в чем-то похожий вопрос В MVVM должна ли ViewModel или Model реализовывать INotifyPropertyChanged? однако единственные решения, похоже, заключаются в добавлении в модель того, что я считаю логикой пользовательского интерфейса. Возможно, я могу добавить в модель какой-то делегат и подключиться к нему из модели просмотра, которая, в свою очередь, будет использовать 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");
}
}
}
...