在一个列表视图中组合多个对象

时间:2015-02-14 16:16:29

标签: windows-runtime windows-phone windows-phone-8.1 winrt-xaml

我正在开发基于XAML的Windows Phone 8.1项目。我的MainPage有一个Pivot控件,其第一项设计为某种“仪表板”,它结合了多种数据,如事件和待办事项。

出于这个特殊目的,我有一个Event和一个To-do模型类(不是实际名称,但你明白了),因为我正在使用MVVMLight来运行这个节目。

我目前在MainPage.xaml的透视项中设置了ListView。我想知道如何使其工作,使所有包含对象EventTo-do的项目都在一个透视项目中。

我环顾四周找到了CompositeCollection,但它只在WPF上,而不是在WinRT上。我尝试处理Midgard.CompositeCollection但数据没有显示,我不明白如何以不同的方式设置这些独立的数据样式。

是否有任何技术可以将两个数据集组合在一组列表中,但是会单独设置样式? ListView是处理多种数据的正确控制,还是还有其他什么?

我对这个领域还很陌生;道歉,如果这是一个基本概念,我还不太了解。

谢谢!

1 个答案:

答案 0 :(得分:0)

有一种方法,很简单。使EventTo-do都从相同的基类继承(可以为空)并创建此基类型的ObservableCollection(如果您不想要,也可以是object创建一个单独的类)。将EventTo-do对象添加到此ObservableCollection

ListView绑定到此ObservableCollection。现在是棘手的部分。您需要创建DataTemplateSelector。有关竞争指南,请参阅http://blog.kulman.sk/using-different-data-templates-with-gridview-in-windows-8-apps/(此文章适用于GridView,但ListView}的工作方式相同。