我想顯示一個使用樹視圖的類,但沒有顯示。我使用Snoop檢查了容器,並且看到了StackPanel,但它是空的,即使項目確實有標題和頁面。沒有綁定錯誤,我不知道爲什麼它不起作用。WPF:TreeView和嵌套模板
public class Project : INotifyPropertyChanged {
public string Title {get;set;}
public ObservableCollection<InfoPage> Pages {get;set;}
...
public class InfoPage : INotifyPropertyChanged {
public string Title {get;set;}
public ObservableCollection<InfoPage> Pages {get;set;}
...
<HierarchicalDataTemplate x:Key="ProjectPageTemplate" ItemsSource="{Binding Pages}">
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="ProjectTemplate" ItemsSource="{Binding Pages}">
<StackPanel>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Title}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"/>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate>
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"/>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
然後在窗口本身:
public static DependencyProperty ProjectProperty = DependencyProperty.Register("Project", typeof(Project), typeof(WinMain));
public Project Project {
get { return base.GetValue(ProjectProperty) as Project; }
set { base.SetValue(ProjectProperty, value); }
}
<TreeView x:Name="trePages" Grid.Row="2" Grid.Column="0" ItemsSource="{Binding Project,ElementName=root,Converter={StaticResource dbg},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ItemTemplate="{StaticResource ProjectTemplate}"/>
見回覆如下您的評論... – Gishu 2009-11-16 05:10:09