グループ化とセマンティック ズームのサンプルを見たことがありますか? http://code.msdn.microsoft.com/windowsapps/groupedgridview-77c59e8e
リストまたはグリッドで項目をグループ化する方法も参照できます...
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh780627.aspx
簡単な説明は... 2つの方法のうちの1つを行うことができます...
List<Activity> Activities = new List<Activity>();
Activities.Add(new Activity()
{ Name = "Activity 1", Complete = true,
DueDate = startDate.AddDays(4), Project = "Project 1" });
Activities.Add(new Activity()
{ Name = "Activity 2", Complete = true,
DueDate = startDate.AddDays(5), Project = "Project 2" });
CollectionViewSource のデータを取得するには、次のようにします。
var result = from act in Activities
group act by act.Project into grp
orderby grp.Key select grp;
cvsActivities.Source = result;
または、このようなオブジェクト プロパティを使用して階層を構築できます...
List<Project> Projects = new List<Project>();
Project newProject = new Project();
newProject.Name = "Project 1";
newProject.Activities.Add(new Activity()
{ Name = "Activity 1", Complete = true, DueDate = startDate.AddDays(4) });
newProject.Activities.Add(new Activity()
{ Name = "Activity 2", Complete = true, DueDate = startDate.AddDays(5) });
newProject.Activities.Add(new Activity()
{ Name = "Activity 3", Complete = false, DueDate = startDate.AddDays(7) });
newProject = new Project();
newProject.Name = "Project 2";
newProject.Activities.Add(new Activity()
{ Name = "Activity A", Complete = true, DueDate = startDate.AddDays(2) });
newProject.Activities.Add(new Activity()
{ Name = "Activity B", Complete = false, DueDate = startDate.AddDays(3) });
cvsProjects.Source = Projects;
単純なリストにバインドして、グループ化を自動的に構成することはできません。