是的,你应该可以通过HeirarchicalDataTemplates
来实现。
您可以为ParentCluster,ChildCluster创建一个HeirarchicalDataTemplates
,然后对问题使用正常的DataTemplate
。
<HierarchicalDataTemplate DataType="{x:Type ParentClusterViewModel}" ItemsSource="{Binding ChildItems}">
<ParentClusterView />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ChildClusterViewModel}" ItemsSource="{Binding ChildItems}">
<ChildClusterView />
</HierarchicalDataTemplate>
如果再有一个基类“TreeItemBase”你的所有树的ViewModels继承,那么你就可以做你想做的。
public abstract class TreeItemBase
{
public List<TreeItemBase> ChildItems { get; set; }
}
public class ParentClusterViewModel : TreeItemBase { ... }
public class ChildClusterViewModel : TreeItemBase { ... }
public class QuestionViewModel : TreeItemBase { ... }
问题是,父CLuster也可以包含问题项目,甚至子集群可以包含子集群和问题项目。这里的问题是一个群集可以包含子群集列表以及问题项目列表。 – Chinjoo 2011-05-18 07:59:00
更新我的答案,希望这应该适合你。 – 2011-05-18 09:25:57
嗨..谢谢..我已经有了这个想法..提供的答案 – Chinjoo 2011-05-18 09:44:06