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

Combining multiple objects in one listview

我正在从事基于 XAML 的 Windows Phone 8.1 项目。我的 MainPage 有一个 Pivot 控件,它的第一项被设计成某种 "dashboard",结合了多种数据,例如事件和待办事项。

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

我目前已经在 MainPage.xaml 的数据透视表项中设置了一个 ListView。我想知道如何让它工作,以便所有具有对象 EventTo-do 的项目都在一个单一的枢轴项目中。

我环顾四周并找到了 CompositeCollection,但它仅适用于 WPF,尚未适用于 WinRT。我尝试处理 Midgard.CompositeCollection 但数据没有显示,而且我不明白如何以不同方式设计这些独立类型的数据。

是否有任何技术可以将两个数据集组合在一组列表中,但会分别设置样式? ListView是处理多种数据的正确控件,还是有别的东西?

我对这个领域还是很陌生;抱歉,如果这是我还不能完全掌握的基本概念。

谢谢!

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

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