对于场景-组织有不同的部门,每个部门有不同的员工,层次数据模板完美地工作。
试题单(父群集)既包含子组(试题组)又有问题项,这样的场景如何?如下所示:
Bilogy (父集群)
儿童cluster)
)
)
儿童Cluster)
)
这里我有两个实体--集群和问题项。群集可以包含群集列表以及应答项列表。
基本上,问题的出现是因为集群的同一层次数据模板应该绑定到两个项源,一个用于子集群,另一个用于问题项。在这种情况下,是否有一种方法可以使用分层数据模板,以便我可以使用树视图。
我正在使用SIlverlight 4.0。
发布于 2011-05-18 07:48:16
是的,您应该能够通过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继承的基类“ViewModels”,那么您就可以做您想做的事情了。
public abstract class TreeItemBase
{
public List<TreeItemBase> ChildItems { get; set; }
}
public class ParentClusterViewModel : TreeItemBase { ... }
public class ChildClusterViewModel : TreeItemBase { ... }
public class QuestionViewModel : TreeItemBase { ... }发布于 2011-05-18 09:23:31
找到了解决办法。基本上,集群和QuestionItem都是WorkItem的类型。我将它们抽象到WorkItem中,并在集群中使用了一个工作项集合,它返回QuestionItems和子集群的组合列表。在TemplateSelector中,重写SelectTemplate以提供基于工作项类型的分层数据模板/数据模板。
https://stackoverflow.com/questions/6041352
复制相似问题