【发布时间】:2012-07-16 22:26:16
【问题描述】:
我有一组不同类型的项目,它们都继承了一个共同的基本类型(ItemBase)。我的每个组都有一个 ObservableCollection<ItemBase> 类型的 Items 集合。
在我的 SemanticZoom.ZoomedInView 中,我可以设置一个 DataTemplateSelector,在 SelectTemplateCore() 中我可以强制转换 item 参数来确定要应用哪个模板。
不过,在我的缩小视图中,对象作为 DependencyObjects 传递,而我终其一生都无法弄清楚如何获取传入的数据以确定要使用的模板。
要在缩小视图中设置 GridView 的项目源,我使用
(semZm.ZoomedOutView as ListViewBase).ItemsSource = this.groupedItemsViewSource.View.CollectionGroups;
因为这似乎是使放大视图和缩小视图同步的唯一方法(当您单击缩小视图中的组时,它应该将我带到 zoomedin 视图中的适当位置以查看该组的详细信息。
那么,在获取 SelectTemplateCore() 中的实际组方面,我是否遗漏了一些明显的东西,或者如果没有更好的方法来绑定 ZoomedOutView 的 ItemsSource?
【问题讨论】:
标签: xaml windows-8 windows-runtime winrt-xaml datatemplateselector