Оберните IEnumerable <T>с помощью ObservableCollection <T> - PullRequest
0 голосов
/ 26 ноября 2010

Из моего репозитория я всегда получаю IEnumerable<T>.

В Ctor или методе моей ViewModel я хочу обернуть мои сущности в ObservableCollection<T>, например:

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); 

}

Что бы вы сделали?

Ответы [ 2 ]

4 голосов
/ 26 ноября 2010

Если у вас есть какое-то преобразование из Customer в CustomerViewModel:

customerViewModels = new ObservableCollection<CustomerViewModel>
    (customers.Select(c => ConvertToViewModel(c)));
3 голосов
/ 26 ноября 2010

Как конвертировать Customer в CustomerViewModel? Может быть, вам просто нужно что-то вроде этого:

customerViewModels = new ObservableCollection<CustomerViewModel>(
    from c in customers
    select new CustomerViewModel(c)
);
...