class Category
{
public string Name;
public string Message;
public ObservableCollection<Category> SubCategories;
}
在那裏將有說5個類別,每個類別包含0(無)之間小類說3
我知道如何結合非分層數據到WPF TreeView,但不能算出分層數據值。
class Category
{
public string Name;
public string Message;
public ObservableCollection<Category> SubCategories;
}
在那裏將有說5個類別,每個類別包含0(無)之間小類說3
我知道如何結合非分層數據到WPF TreeView,但不能算出分層數據值。
下面是一個例子.....
<!-- Create a TreeView, and have it source data from
the AnimalCategories collection -->
<TreeView ItemsSource="{x:Static local:Window1.AnimalCategories}">
<!-- Specify the template that will display a node
from AnimalCategories. I.e., one each for 「Amphibians」
and 「Spiders」 in this sample. It will get its nested
items from the "Animals" property of each item -->
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Animals}">
<!-- Display the AnimalCategory by showing it's Category string -->
<TextBlock FontWeight="Bold" Text="{Binding Path=Category}" />
<!-- Specify the nested template for the individual Animal items
that are within the AnimalCategories. E.g. 「California Newt」, etc. -->
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
這個代碼是從here它可能是更有益的給你讀過那篇文章,我在想。
首先,您需要將所有這些字段轉換爲屬性 - WPF數據綁定無法綁定到字段。 (然後,Muad'Dib的答案應該工作。)
謝謝,是的,這只是一個快速示例,不想完全編寫它作爲示例,但在實際的代碼中,它們是屬性。 – 2010-11-10 23:34:05
我知道這個問題很久以前被問過......但MSDN上有一個很好的example,它擴展了Muad'Dib的答案。
他們的XAML看起來是這樣的:
<StackPanel x:Name="LayoutRoot" Background="White">
<StackPanel.Resources>
<HierarchicalDataTemplate x:Key="ChildTemplate" >
<TextBlock FontStyle="Italic" Text="{Binding Path=Title}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="NameTemplate" ItemsSource="{Binding Path=ChildTopics}" ItemTemplate="{StaticResource ChildTemplate}">
<TextBlock Text="{Binding Path=Title}" FontWeight="Bold" />
</HierarchicalDataTemplate>
</StackPanel.Resources>
<TreeView Width="400" Height="300" ItemsSource="{Binding}" ItemTemplate="{StaticResource NameTemplate}" x:Name="myTreeView" />
</StackPanel>
我發現兩者結合爲我很好地工作。
謝謝你,我現在就試試這個。 – 2010-11-10 23:26:40
其實對不起,我無法在xaml中得到這個工作,只能在代碼中工作。所以我用的是這樣的:對於「{Binding Path = Animals}」,我使用了{Binding Path = Categories}。對於{Binding Path = Category}使用相同的,因爲我認爲這意味着輸入類型的名稱,對於「{Binding Path = Name}」,使用相同的,認爲這是要顯示的成員。 – 2010-11-10 23:55:32