首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeView项目-分层数据模板

TreeView项目-分层数据模板
EN

Stack Overflow用户
提问于 2011-05-18 07:37:25
回答 2查看 1.8K关注 0票数 2

对于场景-组织有不同的部门,每个部门有不同的员工,层次数据模板完美地工作。

试题单(父群集)既包含子组(试题组)又有问题项,这样的场景如何?如下所示:

Bilogy (父集群)

儿童cluster)

  • Question 1(问题Item)

)

    • Question 2(问题Item)

)

儿童Cluster)

  • Sub组1(儿童组)

    • Question 1(问题项)

    • Question 2(问题Item)

)

这里我有两个实体--集群和问题项。群集可以包含群集列表以及应答项列表。

基本上,问题的出现是因为集群的同一层次数据模板应该绑定到两个项源,一个用于子集群,另一个用于问题项。在这种情况下,是否有一种方法可以使用分层数据模板,以便我可以使用树视图。

我正在使用SIlverlight 4.0。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-18 07:48:16

是的,您应该能够通过HeirarchicalDataTemplates实现这一点。

您可以为HeirarchicalDataTemplates为ParentCluster创建一个ChildCluster,然后为这个问题使用一个普通的DataTemplate

代码语言:javascript
复制
 <HierarchicalDataTemplate DataType="{x:Type ParentClusterViewModel}" ItemsSource="{Binding ChildItems}">
    <ParentClusterView />
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type ChildClusterViewModel}" ItemsSource="{Binding ChildItems}">
    <ChildClusterView />
</HierarchicalDataTemplate>

如果您有一个所有树TreeItemBase继承的基类“ViewModels”,那么您就可以做您想做的事情了。

代码语言:javascript
复制
public abstract class TreeItemBase
{
    public List<TreeItemBase> ChildItems { get; set; }
}  

public class ParentClusterViewModel : TreeItemBase { ... }
public class ChildClusterViewModel : TreeItemBase { ... }
public class QuestionViewModel : TreeItemBase { ... }
票数 2
EN

Stack Overflow用户

发布于 2011-05-18 09:23:31

找到了解决办法。基本上,集群和QuestionItem都是WorkItem的类型。我将它们抽象到WorkItem中,并在集群中使用了一个工作项集合,它返回QuestionItems和子集群的组合列表。在TemplateSelector中,重写SelectTemplate以提供基于工作项类型的分层数据模板/数据模板。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6041352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档