我有像Customer:Order:Product這樣的聚合模型。MVVM/WPF:在域模型中使用ObservableCollection <T>作爲列表,是好還是壞?
至於我的觀點是必然具有類型的ObservableCollection的房產客戶的BillingViewModel
和一個客戶在此集合中有一個名爲的ObservableCollection
,一個爲了這個集合訂單 的「清單」有一個產品名單 名爲ObservableCollection
那麼我需要ObservableCollection的數據綁定,但是如果域模型真的有一個ObservableCollection?通常它有一個
列表或IEnumerable!
這是壞習慣還是有副作用?
我上面的追加什麼是正確的解釋到:
class Customer
{
int CustomerID {get;set;}
ObservableCollection<Order> { get;set;}
}
class BillingViewModel
{
ObservableCollection<Customer> _customers;
public BillingViewModel()
{
Customers= GetAggregatedCustomersOrdersProductsFromRepository();
}
public ObservableCollection<Customer> Customers
{
get{ return _customers;}
set
{
_customers = value;
this.RaisePropertyChanged("Customers");
}
}
}
我現在希望它更加清晰!我在ViewModel和Model中有ObservableCollection!
沒有邏輯。我只是在視圖中添加一個訂單,在我的BillingViewModel中,CurrentOrder被添加到SelectedCustomer中,如 SelectedCustomer.Orders.Add(CurrentOrder); 然後我的訂單的DataGrid立即更新。 使用列表視圖中沒有更新:/ 那麼,我可以對你說的不良形式做些什麼......? –
msfanboy
2010-05-21 18:07:53
如果您的BillingViewModel正在使用ObservableCollection,那麼沒有任何問題。只有當您的對象不與視圖交互時纔會讓它們成爲不正確的形式。 – Tejs 2010-05-21 18:17:14
啊不,你誤會我了!我更新了我的第一篇文章! – msfanboy 2010-05-21 18:38:37