Я перехожу из мира WinForms в WPF с MVVM.Работа с POCO в MVVM
Моя базовая система работает с классами POCO (NHibernate) и мы используем некоторые DynamicProxy отобразить эти классы POCO в какой-то Bindable так ModelView может выставить прокси-сервер POCO и сэкономить много кода:
public class OrderViewModel
{
public OrderPOCO Order { get; private set; }
}
public class OrderView
{
public OrderView()
{
DataContext = DynamicProxy(new OrderViewModel(new OrderPOCO()));
}
}
public class OrderPOCO
{
public virtual int Number { get; set; };
public virtual IList<OrderItemPOCO> Items { get; set; };
}
public class OrderItemPOCO
{
public virtual decimal Qty { get; set; }
public virtual decimal Price { get; set; }
public virtual decimal Amount { get; set; }
}
Коллекция OrderItemPOCO привязана к сетке. Сумма - это вычисленное свойство, которое зависит от некоторых сложных правил (я не могу поместить его в POCO, поскольку это не простая сумма = Qty * Price).
Конечно, я могу открыть в ViewModel пользовательский OrderItemViewModel и коллекцию OrderItemViewModel, но мне нужно будет перекодировать мои классы POCO. Как я могу кодировать такую ситуацию в MVVM без перекодировки всей моей модели?
Согласен. @ user598839, зачем вам переписывать классы POCO для представления ViewModel? В конце концов, MVVM - это то, что View и Model прозрачны друг другу ... (На самом деле ViewModel не знает о представлении!) –