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 Children { get; set; } } public class LeafComponent : ITreeComponent { } 

我需要将此结构绑定到我的WPF项目中的TreeView。 树视图首先:

     

和绑定代码:

 bTreeView = new Binding(); bTreeView.Source = MyTree; bTreeView.Path = new PropertyPath("TreeRoot.Children"); treeView.SetBinding(TreeView.ItemsSourceProperty, bTreeView); 

问题是TReeView实际上并没有使用这些模板(它只显示最高级别的层次结构并调用.ToString()来显示那些项目。请告诉我哪里出错了。否则,如果我设置它正在工作,但我不能在那里定义两个模板。

谢谢。

好吧,我注意到你将模板放在资源中,而不是在TreeVeiw.ItemTemplate下。

TreeView应该有一个ItemTemplate(Hierarchical)和ItemsSource集。 不应该需要更多的东西。

虽然可以帮助我们测试示例数据。

我的坏 – 主程序集正在用实体加载dll两次而不是一次。 这导致它变得疯狂 – 一旦我修复它并且一旦问题消失就加载组件。