我有一個業務對象的項目,其中包含複合結構:WPF的TreeView不適的DataTemplate相應
public class Tree
{ public IProductComponent TreeRoot { get; set; } }
public interface ITreeComponent
{ public string Name { get; set; } }
public class ContainerComponent : ITreeComponent
{ public BindingList<ITreeComponent> Children { get; set; } }
public class LeafComponent : ITreeComponent
{ }
我需要這個結構來一個TreeView綁定在我的WPF項目。樹視圖第一:
<TreeView x:Name="treeView" Grid.ColumnSpan="2">
<TreeView.Resources>
<HierarchicalDataTemplate
ItemsSource="{Binding Children}"
DataType="{x:Type businessObjects:ContainerComponent}">
<Label Content="{Binding Name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type businessObjects:LeafComponent}">
<Label Content="{Binding Name}"/>
</DataTemplate>
</TreeView.Resources>
</TreeView>
和代碼綁定:
bTreeView = new Binding();
bTreeView.Source = MyTree;
bTreeView.Path = new PropertyPath("TreeRoot.Children");
treeView.SetBinding(TreeView.ItemsSourceProperty, bTreeView);
的問題是,TreeView中實際上並未使用這些模板(它顯示層次只有頂層和調用的ToString ()來顯示這些項目,請告訴我,我在哪裏出了問題。否則,如果我設置它是工作,但我不能確定兩個模板存在。
感謝。
對不起,如何在視圖模型中構建樹層次結構並不十分清楚。你能否列舉一些例子? – Tigran 2010-03-02 12:43:27