с Caliburn.micro Я хотел бы знать плюсы и минусы разоблачения объекта EF4 как свойство ViewModel (подробное описание здесь И вот ). Это позволяет мне избегать писать Getter и Setters для каждого поля (см. Onecustomer ниже). Недостаток в том, что мне нужно написать все утверждения привязки в XAML (ниже lastname не в ViewModel, но требует привязки XAML). Если я придерживаюсь назначенной технике наполнения моего просмотра моделя со свойствами для каждого поля (как и первое значение ниже), я в конечном итоге пришлось написать тонну дополнительного кода, так что NotifyofProperyChange будет вызывать. Приложение будет довольно большим. Должен ли я разоблачить каждую сущность в качестве свойства ViewModel?
в моем просмотру:
private MyEntities _context = new MyEntities();
private BindableCollection _custBindableCollection;
private Customer _oneCustomer;
private string _firstName;
public void Load()
{
_custBindableCollection = new BindableCollection(_context.Customers.Where(row => row.CustomerType == "FOO"));
AllCustomers = _custBindableCollection;
_oneCustomer = _custBindableCollection.FirstOrDefault();
FirstName = _oneCustomer.FirstName;
OneCustomer = _oneCustomer;
}
public BindableCollection AllCustomers
{
get { return _custBindableCollection;}
set {_custBindableCollection = value;
NotifyOfPropertyChange(() => AllCustomers);}
}
public Customer OneCustomer
{
get { return _oneCustomer;}
set { _oneCustomer = value;
NotifyOfPropertyChange(() => OneCustomer);}
}
public string FirstName
{
get { return _firstName; }
set {
_firstName = value;
_oneCustomer.FirstName = value;
NotifyOfPropertyChange(() => FirstName);
NotifyOfPropertyChange(() => CanSaveChanges);
}
}
public void SaveChanges()
{ _context.SaveChanges(); }
public bool CanSaveChanges { get { return IsValid; } }
На мой взгляд:
заранее спасибо.