TreeViewコントロールを使用できます。
このプロジェクトへのリンク:NuGet:WinRTXamlToolkitとGitHub:WinRTXamlToolkitです。
は、パッケージマネージャコンソールを使用して、あなたのプロジェクトでそれをインストールします。Install-Package WinRTXamlToolkit.UWP
私はあなたの条件から基本的なデモを行いました。
<Page
x:Class="TreeViewSample.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TreeViewSample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="using:WinRTXamlToolkit.Controls"
xmlns:data="using:WinRTXamlToolkit.Controls.Data"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<controls:TreeView ItemsSource="{x:Bind myList}">
<controls:TreeView.ItemTemplate>
<DataTemplate>
<data:DataTemplateExtensions.Hierarchy>
<data:HierarchicalDataTemplate ItemsSource="{Binding SubTasks}"></data:HierarchicalDataTemplate>
</data:DataTemplateExtensions.Hierarchy>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</controls:TreeView.ItemTemplate>
</controls:TreeView>
</Grid>
MainPage.xaml.cs:
namespace TreeViewSample
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
public List<Task> myList;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
myList = new List<Task>();
var taskA = new Task("TaskA");
taskA.SubTasks = new List<Task> {
new Task("SubTaskA"),
new Task("SubTaskB"),
new Task("SubTaskC")
};
taskA.SubTasks[0].SubTasks = new List<Task> {
new Task("SubSubTaskA"),
new Task("SubSubTaskB"),
new Task("SubSubTaskC"),
new Task("SubSubTaskD")
};
myList.Add(taskA);
}
}
public class Task
{
public Task(string name) {
this.Name = name;
}
private String name;
public String Name
{
get { return name; }
set { name = value; }
}
public List<Task> SubTasks { get; set; }
}
}
がたくさんありがとう、それをスタイルするために多くの問題をようだが、
MainPage.xamlを:以下のコードを参照してください。それは私が求めているものなので、私は答えとしてマークします – NicolasL