1
首先,我已閱讀this post並沒有找到我的問題的答案。MVVM - 如何將ViewModel包裝在ViewModel中?
我不知道這是否是一個聚合型號類或聚合視圖模型類,但是這是我有:
在我的WPF(帶棱柱)應用程序,我有一個觀點「 過濾客戶查看',該服務連接到服務並基於過濾器請求'客戶'對象列表。
是從服務返回的列表是這樣的:
List<CustomerDTO> FilteredCustomers;
而且CustomerDTO看起來是這樣的:
而且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?如果某人想要刪除其中的項目或更新其中的項目或向其中添加項目,會發生什麼情況?
WPF不會綁定到字段。僅屬性。因此,任何具有字段而不是屬性的POCO都不能用作模型。 – Will 2012-08-02 14:54:00
你指的是哪一類?我的'ViewModel'類不綁定到POCO! – 2012-08-02 15:07:12
'公共類CustomerDTO' – Will 2012-08-02 15:09:19