1

У меня есть набор групп разных типов элементов, все наследующие образуют общий базовый тип (ItemBase). Каждая из моих групп имеет коллекцию предметов типа ObservableCollection<ItemBase>.DataTemplateSelector в SemanticZoom.ZoomedOutView

В моем SemanticZoom.ZoomedInView я могу установить DataTemplateSelector, а в SelectTemplateCore() я могу указать параметр item, чтобы определить, какой шаблон применить.

В моем увеличенном виде объекты передаются как DependencyObjects, и я не могу на всю жизнь выяснить, как я могу передать данные, чтобы определить, какой шаблон использовать.

Чтобы установить источник пунктов GridView в уменьшенном масштабе зрения, я использую

(semZm.ZoomedOutView as ListViewBase).ItemsSource = this.groupedItemsViewSource.View.CollectionGroups; 

, как это, кажется, единственный способ получить zoomedin и zoomedout вида синхронизации (при нажатии на группа в увеличенном виде, она должна отвезти меня в нужное место в zoomedinview, чтобы увидеть подробности этой группы.

Итак, я пропустил что-то очевидное с точки зрения получения фактической группы в SelectTemplateCore(), или если это не так, есть лучший способ привязки моего ItemsSource к ZoomedOutView?

ответ

2

Для подходящего способа обработки отливки из DependencyObject в работоспособный тип, смотрите ответ на This question.

по существу, приведение его в ICollectionViewGroup для доступа к элементам.

Смежные вопросы