I'm working on a XAML-based Windows Phone 8.1 project. My MainPage
has a Pivot control, the first item of which is designed to be a "dashboard" of some sort, combining multiple kinds of data such as events and to-dos.
For this particular purpose I have an Event
and a To-do
model classes (not the actual name, but you get the idea), as I am using MVVMLight to run the show.
I have currently set up a ListView
in a pivot item in MainPage.xaml. I was wondering how can I make it work such that all items with objects Event
and To-do
are at one single pivot item.
I've looked around and found CompositeCollection, but it's only on WPF, not on WinRT yet. I tried dealing with Midgard.CompositeCollection but the data doesn't show up, and I don't understand how can I style these independent kinds of data differently.
Are there any techniques on combining two datasets together on one set of lists but will be styled separately? Is ListView
the correct control for dealing with multiple kinds of data, or is there something else?
I'm still quite new to this field; apologies if this is a basic concept I can't quite grasp yet.
Thank you!
There is a way and it is quite simple. Make both Event
and To-do
inherit from the same base class (could be empty) and create an ObservableCollection
of this base type (can also be object
if you do not want to create a separate class). Add both Event
and To-do
object to this ObservableCollection
.
Bind the ListView
to this ObservableCollection
. Now comes the tricky part. You need to create a DataTemplateSelector
. For a compete guide, see http://blog.kulman.sk/using-different-data-templates-with-gridview-in-windows-8-apps/ (this articles is for GridView
but it works the same for ListView
).