IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Création control Accordion + Treeview


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Par défaut Création control Accordion + Treeview
    Bonjour,

    Je veux créer un contrôle qui affiche un Menu en mixant un Accordion et une Treeview.
    L'Accordéon est utilisé pour le premier niveau, la treeview est utilisée à partir du niveau suivant.
    L'idée est de dériver de Treeview pour utiliser le contrôle de la même manière, avec notamment l'utilisation possible d'un HierarchicalDataTemplate.

    Voici un exemple de l'utilisation du futur contrôle tel que je l'imagine dans le Xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <!-- Exemple d'utilisation du nouveau contrôle avec un Binding sur une collection hiérarchique d'Item -->
    <myControls:AccordionMenu ItemsSource="{Binding Items}">
    	<!-- Définition du HierarchicalDataTemplate pour le premier niveau 
    	On défini grâce à lui le Binding du premier niveau Hierarchique et la manière de l'afficher
    	-->
    	<myControls:AccordionMenu.RootItemTemplate>
    		<common:HierarchicalDataTemplate ItemsSource="{Binding Path=Items}">
    			<TextBlock Text="{Binding Name}"/>
    		</common:HierarchicalDataTemplate>
    	</myControls:AccordionMenu.RootItemTemplate>
    	<!-- Définition du HierarchicalDataTemplate pour les autres niveaux
    	On défini grâce à lui le Binding des niveaux supérieurs au premier et la manière de les afficher
    	-->
    	<myControls:AccordionMenu.ItemTemplate>
    		<common:HierarchicalDataTemplate ItemsSource="{Binding Path=Items}">
    			<TextBlock Text="{Binding Name}"/>
    		</common:HierarchicalDataTemplate>
    	</myControls:AccordionMenu.ItemTemplate>
    </myControls:AccordionMenu>


    Voici le code d'une première tentative, il ne s'agit pas encore d'un contrôle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <toolkit:Accordion.ContentTemplate>
    		<common:HierarchicalDataTemplate ItemsSource="{Binding Path=Items}">
    			<sdk:TreeView ItemsSource="{Binding Path=Items}"  >
    				<sdk:TreeView.ItemTemplate>
    					<common:HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" >
    						<TextBlock Text="{Binding Name}"/>
    					</common:HierarchicalDataTemplate>
    				</sdk:TreeView.ItemTemplate>
    			</sdk:TreeView>
    		</common:HierarchicalDataTemplate>
    	</toolkit:Accordion.ContentTemplate>
    </toolkit:Accordion>

    Comment faire pour créer un contrôle qui permette lors de l'utilisation de définir les deux HierarchicalDataTemplate indépendamment ?
    J'attache une capture d'écran du résultat attendu...

    Quelqu'un a-t-il une idée sur ce problème ?
    Images attachées Images attachées  

Discussions similaires

  1. Création d'un TreeView à partir de tables
    Par yamino dans le forum Bases de données
    Réponses: 10
    Dernier message: 23/02/2011, 10h25
  2. Custom Control Accordion
    Par jacky01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/10/2009, 08h23
  3. Réponses: 7
    Dernier message: 20/10/2008, 22h37
  4. Création Controle personnalisé
    Par moumoune65 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/09/2007, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo