2010-11-14 6 views
0

По стандартам Microsoft объекты доступа к данным (DAO) ... и Business Objects (BO) должны возвращать общие формы, такие как IList, а не List.Может ли слой доступа к данным и бизнес-объектам возвращать наблюдаемую коллекцию?

Но мне нужно ObservableCollection в Viewmodel и нет IObservableCollection.

Что делать в этом случае?

Могу ли я вернуть IList из BO для просмотра модели и конвертировать IList в ObservableCollection?

ответ

0

Каковы ваши коллекции из?

Скажем, ваш уровень обслуживания возвращает IEnumerable<Customer>. Модель корневого представления должна иметь свойство, которое является ObservableCollection<CustomerViewModel>. Таким образом, вам определенно понадобится иметь некоторый код в вашей модели просмотра, чтобы сделать это преобразование, и в то же время вы можете заполнить ObservableCollection вместо IList или IEnumerable.

+0

Да ... я могу преобразовать его в viewmodel. Для этого я использую некоторые методы расширения. – Relativity

+0

Как копировать наблюдаемую коллекцию, используя метод «Выбрать» – Relativity

+0

Метод выбора дает вам IEnumerable. Наблюдаемой коллекции может быть присвоен этот IEnumerable в своем конструкторе: 'new ObservableCollection (customers.Select (x => ConvertCustomer (x)));' –