[c#] TreeViewにHierarchicalDataTemplatesを持つ



Answers

Question

以前に投稿した質問( WPF:TreeViewItemにオブジェクトを正しく格納すること )に関しては、

TreeViewにHierarchicalDataTemplateをネストすることは可能ですか?

次の例を考えてみましょう。

コード:

public class Artist
{
        private readonly ICollection<Album> _children = new ObservableCollection<Album>();
        public string Name { get; set; }

        public ICollection<Album> Albums
        {
            get { return _children;}
        }
}

public class Album
{
        private readonly ICollection<Track> _children = new ObservableCollection<Track>();
        public string Name { get; set; }

        public ICollection<Track> Tracks
        {
            get { return _children;}
        }
}

Xaml:

<TreeView x:Name="_treeView">
        <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type local:Artist}" ItemsSource="{Binding Albums}">
                        <TextBlock Text="{Binding Name}"/>
                </HierarchicalDataTemplate>
        </TreeView.Resources>
</TreeView>

上記から分かるように、TreeViewはアーティストとそのアルバムのみをバインドしています。 アルバムのトラック(アルバムのサブリストなど)も含めて変更するにはどうすればよいですか?






Links