Question

Pour le scénario - l'organisation ayant un département différent, chaque département ayant différents employés, le modèle de données hiérarchique fonctionne parfaitement.

Que diriez-vous d'un scénario comme du papier de questions (cluster parent) ayant les deux grappes d'enfants (groupe d'élément de questions) ainsi que les éléments de questions. Comme suit:

Bilogie (cluster parent)

  • Groupe 1 (grappe d'enfants)
    • Question 1 (Item de question)
    • Question 2 (article de question)
  • Groupe 2 (groupe d'enfants)
    • Sous-groupe 1 (grappe d'enfants)
    • Question 1 (Item de question)
    • Question 2 (article de question)

Ici, j'ai deux entités - cluster et élément de question. Le cluster peut contenir la liste des clusters ainsi que la liste des éléments de réponse.

Fondamentalement, le problème vient comme le même modèle de données hiérarchique pour le cluster devrait se lier à deux sources d'éléments, une pour les grappes d'enfants et une pour les éléments de question. Existe-t-il un moyen d'utiliser le modèle de données hiérarchique dans ce cas afin que je puisse utiliser la vue d'arbre pour cela.

J'utilise Silverlight 4.0.

Était-ce utile?

La solution

Oui, vous devriez pouvoir y parvenir avec HeirarchicalDataTemplates.

Vous pouvez soit créer un HeirarchicalDataTemplates Pour parentCluster, ChildCluster, puis utilisez une normale DataTemplate pour la question.

 <HierarchicalDataTemplate DataType="{x:Type ParentClusterViewModel}" ItemsSource="{Binding ChildItems}">
    <ParentClusterView />
</HierarchicalDataTemplate>

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

Si vous avez alors une classe de base «TreeItembase» dont tous vos modèles de vue d'arbre héritent, alors vous pourrez faire ce que vous voulez.

public abstract class TreeItemBase
{
    public List<TreeItemBase> ChildItems { get; set; }
}  

public class ParentClusterViewModel : TreeItemBase { ... }
public class ChildClusterViewModel : TreeItemBase { ... }
public class QuestionViewModel : TreeItemBase { ... }

Autres conseils

J'ai trouvé une solution à cela. Fondamentalement, le cluster et le questionitem sont un type de travail. Je les ai résolus à WorkItem et j'ai utilisé une collétion de WorkItem en cluster qui renvoie la liste combinée de QuesterItems andSub Clusters. Dans le modèle de sélection de SelectTelect Overridden pour fournir le modèle de données hiérarchique / modèle de données basé sur le type d'élément de travail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top