2010-11-25 73 views
0

從我的庫我總是得到一個IEnumerable。WPF/MVVM:包裝IEnumerable <T>與ObservableCollection <T>

在構造函數或我視圖模型的方法,我想換我的實體變成像這樣的的ObservableCollection:

private ObservableCollection<CustomerViewModel> customerViewModels; 

public BillingViewModel(IService service) 
{ 
    ... 
    IEnumerable<Customer> customers = service.GetCustomers(); 

    // that will not work because of a different type 
    customerViewModels = new ObservableCollection(customers); 

} 

你會做什麼?

回答

4

假設你有某種形式從客戶轉化爲CustomerViewModel:

customerViewModels = new ObservableCollection<CustomerViewModel> 
    (customers.Select(c => ConvertToViewModel(c))); 
3

如何將Customer轉換爲CustomerViewModel?也許你只需要像這樣:

customerViewModels = new ObservableCollection<CustomerViewModel>(
    from c in customers 
    select new CustomerViewModel(c) 
); 
相關問題