Проблема: Как связать RIA IEnumerable с вложенным элементом IEnumberable в Silverlight с использованием MVVM Light and Blend?
Настройка: Я настроил службы RIA для работы с простой моделью Entity Framework, которая имеет две сущности Category и Activity; где каждая категория может включать в себя множество видов деятельности.
Доменная служба имеет функцию GetCategoriesWithActivities (), которая возвращает:
return this.ObjectContext.Categories.Include("Activities");
Модель использует DataContext.Load для выполнения запроса и возвращает LoadOperation, которое имеет свойство Entities, которое является IEnumberable. Поскольку запрос включает в себя действия, существует также вложенный IEnumerable. Используя отладчик Visual Studio, я вижу, что данные возвращаются в IEnumerable.
Моя ViewModel предоставляет возвращенный IEnumerable в качестве открытого свойства. Используя MVVM Light, ViewModel устанавливается как DataContext модели.
Когда я пытаюсь привязать данные к IEnuberable, члены категории недоступны, не говоря уже о членах вложенных операций.
Вопрос: Какой тип данных должен предоставлять мой ViewModel, чтобы я мог связываться с категориями и вложенными операциями? Как мне преобразовать IEnumerable в этот тип? Я хочу использовать исходные объекты RIA Category и Activity, чтобы отслеживание изменений работало.
PS: я забыл упомянуть, что моей конечной целью является привязка IEnumerables к категориям и действиям к элементу управления Accordion.