Ben tanımladığı bir 4 seviyeli ağaç yapısı vardır:HierarchicalDataTemplate öğelerini TreeViewItem'in içine otomatik olarak sarabilir miyim?
<HierarchicalDataTemplate DataType="{x:Type src:Level1}" ItemsSource="{Binding Path=Level2Items}">
<TextBlock Text="{Binding Path=Level1Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Level2}" ItemsSource="{Binding Path=Level3Items}">
<TextBlock Text="{Binding Path=Level2Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Level3}" ItemsSource="{Binding Path=Level4Items}">
<TextBlock Text="{Binding Path=Level3Name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type src:Level4}">
<TextBlock Text="{Binding Path=Level4Name}"/>
</DataTemplate>
Ve harika çalışıyor. Tek şey, programlı olarak ilişkili öğelerimden herhangi birini seçemiyorum, çünkü bunlar TreeViewItem türündendir (ve bu nedenle "IsSeçilmiş" özelliği yoktur). Belirli bir kap türündeki veri maddelerini otomatik olarak sarmalamanın bir yolu var mı (bu durumda: TreeViewItem)? senin öğeler TreeView
iseniz
Maalesef bağlı öğeler TreeViewItem içine otomatik olarak sarılmış edilecektir varsayım (benim durumumda doğru değildir Sebebi ne olursa olsun). TreeView Öğeleri koleksiyonundaki ilk öğede GetType() öğesini çağırmak, "TreeViewItem" türünü değil, benim türünü döndürür. Düşüncesi olan var mı? Teşekkürler!! – Pwninstein
Öğeler koleksiyonu, öğeleriniz gerektiği gibi içeriyor. Ancak görsel ağaç, öğenizi bir kapsayıcıya sarar. TreeViews için kap bir TreeViewItem'dir. –
Kent kesinlikle doğru. Her öğe, ItemContainerStyle özelliği tarafından tanımlanan bir ItemContainer'a sarılır. Bir TreeView için, varsayılan kap bir TreeViewItem'dir. WPF'nin ItemContainers'daki blog yazısı: http://drwpf.com/blog/Home/tabid/36/EntryID/32/Default.aspx – Adrian