首先,我已经阅读了这篇文章,并没有找到我的问题的答案。
我不确定这是聚合模型类还是聚合ViewModel类,但这就是我所拥有的:
在我的 WPF(使用 Prism)应用程序中,我有一个视图“过滤客户视图”,它连接到服务并根据过滤器请求“客户”对象列表。
从服务返回的列表是这样的:
List<CustomerDTO> FilteredCustomers;
CustomerDTO看起来像这样:
public class CustomerDTO
{
public Guid CustomerId;
public String Name;
public String Address;
public String PhoneNumber;
public OrderInfoDTO LastOrderInformation;
public List<OtherClass> ListOfSomething;
}
OrderInfoDTO看起来像这样:
public class OrderInfoDTO
{
public Guid OrderId;
public DateTime OrderDate;
public int NumberOfProducts;
public double TotalAmountSpent;
}
OtherClass看起来像这样:
public class OtherClass
{
public Guid Id;
public String SomeText;
}
如您所见 - 客户可能有也可能没有“最后订单”,
我想将“ CustomerDTO ”对象包装在ViewModel中,以便可以将其绑定到视图。
这就是我想做的事情:
public class CustomerViewModel : NotificationObject
{
private CustomerDTO _customerDTO;
public CustomerViewModel(CustomerDTO customerDTO)
{
_customerDTO = customerDTO;
}
public Guid CustomerId
{
get { return _customerDTO.CustomerId; }
set { _customerDTO.CustomerId = value; RaisePropertyChanged("CustomerId "); }
}
public String Name
{
get { return _customerDTO.Name; }
set { _customerDTO.Name = value; RaisePropertyChanged("Name"); }
}
public String Address
{
get { return _customerDTO.Address; }
set { _customerDTO.Address = value; RaisePropertyChanged("Address"); }
}
public String PhoneNumber
{
get { return _customerDTO.PhoneNumber; }
set { _customerDTO.PhoneNumber= value; RaisePropertyChanged("PhoneNumber"); }
}
}
.
问题:
- 首先 - 'CustomerDTO' 是所谓的模型吗?'OrderInfoDTO' 也是一个模型吗?'OtherClass' 呢?
- 如何处理CustomerViewModel类中的“OrderInfoDTO”?我是否也为它创建一个“ViewModel”?我在哪里创建“OrderInfoDTO”视图模型???如果现在有人更新客户并设置“OrderInfoDTO”值会发生什么?
- 如何处理CustomerViewModel类中的“OtherClass”列表?我要为它创建一个 ObservableCollection 吗?如果有人想要删除其中的项目或更新其中的项目或向其中添加项目,会发生什么?