是的,您应该能够通过HeirarchicalDataTemplates
.
您可以HeirarchicalDataTemplates
为 ParentCluster、ChildCluster 创建一个,然后DataTemplate
为问题使用一个法线。
<HierarchicalDataTemplate DataType="{x:Type ParentClusterViewModel}" ItemsSource="{Binding ChildItems}">
<ParentClusterView />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type ChildClusterViewModel}" ItemsSource="{Binding ChildItems}">
<ChildClusterView />
</HierarchicalDataTemplate>
如果你有一个基类'TreeItemBase',你的所有树视图模型都继承自,那么你就可以做你想做的事。
public abstract class TreeItemBase
{
public List<TreeItemBase> ChildItems { get; set; }
}
public class ParentClusterViewModel : TreeItemBase { ... }
public class ChildClusterViewModel : TreeItemBase { ... }
public class QuestionViewModel : TreeItemBase { ... }