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 :

[Silverlight] Treeview et Databinding


Sujet :

Silverlight

Vue hybride

valnours [Silverlight] Treeview et... 08/09/2009, 17h02
Skyounet Elle dit quoi ta ressource... 08/09/2009, 17h42
tomlev De quel évènement tu parles ?... 08/09/2009, 17h44
valnours Ma HeaderTemplate est: ... 09/09/2009, 10h51
tomlev SelectedItemChanged se... 09/09/2009, 11h07
valnours Justement mon problème est... 09/09/2009, 11h19
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut [Silverlight] Treeview et Databinding
    Bonjour,

    Voila mon soucis, j'ai un treeview crée a partir d'un fichier xml. Mais j'aimerai attribuer a chaque item et a chaque header un evenement. Mais je n'arrive pas a avoir acces aux items et header... J'utilise Expression Blend 3.
    Le code de mon Treeview est :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <controls:TreeView MouseLeave="retournormale" SelectedItemChanged="trvDatabase_SelectedItemChanged" x:Name="treeView_Copy" Height="194" Width="174" FontSize="6.667" Foreground="#FFFF2000" FontFamily="Verdana" FontWeight="Bold" RenderTransformOrigin="0.5,0.5" Canvas.Top="8" Canvas.Left="62" DataContext="{Binding Source={StaticResource test2SampleDataSource}}" ItemTemplate="{StaticResource headerTemplate12}" ItemsSource="{Binding headerCollection}"  />


    Et le code généré automatiquement en xml par Blend 3 est :
    Code XML : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <!--
          *********    DO NOT MODIFY THIS FILE     *********
          This file is regenerated by a design tool. Making
          changes to this file can cause errors.
    -->
    <SampleData:root xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.test2SampleDataSource" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
      <SampleData:root.headerCollection>
        <SampleData:header name="Storage">
          <SampleData:header.maRefTitreCollection>
            <SampleData:maRefTitre id="1" name="FDA/Optima" />
            <SampleData:maRefTitre id="2" name="EMC CLARiiON" />
            <SampleData:maRefTitre id="3" name="EMC DMX-4" />
            <SampleData:maRefTitre id="4" name="NetApp FAS" />
          </SampleData:header.maRefTitreCollection>
        </SampleData:header>
        <SampleData:header name="Servers">
          <SampleData:header.maRefTitreCollection>
            <SampleData:maRefTitre id="5" name="R481" />
            <SampleData:maRefTitre id="6" name="EMC CLARiiON" />
            <SampleData:maRefTitre id="7" name="EMC DMX-4" />
            <SampleData:maRefTitre id="8" name="NetApp FAS" />
          </SampleData:header.maRefTitreCollection>
        </SampleData:header>
        <SampleData:header name="CPU">
          <SampleData:header.maRefTitreCollection>
            <SampleData:maRefTitre id="9" name="R482" />
          </SampleData:header.maRefTitreCollection>
        </SampleData:header>
        <SampleData:header name="Switch">
          <SampleData:header.maRefTitreCollection>
            <SampleData:maRefTitre id="10" name="R483" />
          </SampleData:header.maRefTitreCollection>
        </SampleData:header>
      </SampleData:root.headerCollection>
    </SampleData:root>

    En espérant une réponse merci d'avance

    Valnours
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Elle dit quoi ta ressource headerTemplate12 ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    De quel évènement tu parles ? On va supposer que c'est Click, de toutes façons si c'est un autre le même principe marche aussi.
    Sur le TreeView, ajoute un handler pour l'évènement TreeViewItem.Click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TreeView ... TreeViewItem.Click="trvDatabase_TreeViewItemClick".../>
    L'évènement se déclenchera quand n'importe quel TreeViewItem du TreeView sera cliqué. Pour savoir quel TreeViewItem a déclenché l'évènement, utilise e.OriginalSource

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    Ma HeaderTemplate est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		<common:HierarchicalDataTemplate x:Key="headerTemplate12" ItemsSource="{Binding maRefTitreCollection}">
    			<StackPanel>
    				<TextBlock Text="{Binding name}"/>
    			</StackPanel>
    		</common:HierarchicalDataTemplate>
    	</UserControl.Resources>
    Sinon l'evenement est SelectedItemChanged. Et j'aimerai ajouter le meme evenemtn a chacun mais chaque evenement appellerai une fonction différente.

    Merci de votre aide^^

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par valnours Voir le message
    Sinon l'evenement est SelectedItemChanged. Et j'aimerai ajouter le meme evenemtn a chacun mais chaque evenement appellerai une fonction différente.
    SelectedItemChanged se produit sur le TreeView, pas sur chaque élément. Dans le handler de l'évènement, tu peux appeler telle ou telle méthode selon l'élément sélectionné

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    SelectedItemChanged se produit sur le TreeView, pas sur chaque élément. Dans le handler de l'évènement, tu peux appeler telle ou telle méthode selon l'élément sélectionné
    Justement mon problème est la, je n'arrive pas à a différencier les Items. Etant donné que c'est une databinding, je n'arrive a récuperer que le header de mon fichier ou le RefTitre. Mais j'ai 4 headers différents qui quand on les selectionnent appelle une méthode différente. Et de même pour mes RefTitre. Mais je n'arrive pas a avoir acces à ces data car elles sont dans une autre page xaml (qui est généré automatiquement par Expression Blend).

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par valnours Voir le message
    Justement mon problème est la, je n'arrive pas à a différencier les Items. Etant donné que c'est une databinding, je n'arrive a récuperer que le header de mon fichier ou le RefTitre. Mais j'ai 4 headers différents qui quand on les selectionnent appelle une méthode différente. Et de même pour mes RefTitre. Mais je n'arrive pas a avoir acces à ces data car elles sont dans une autre page xaml (qui est généré automatiquement par Expression Blend).
    J'ai pas tout compris, mais si tu utilises le binding, pourquoi tu ne te bases pas sur l'objet de donnée pour savoir quelle méthode appeler ? La propriété SelectedItem renvoie l'objet de donnée, pas le TreeViewItem...

Discussions similaires

  1. [Débutant] comment retrouver ma valeur c1:silverlight.Treeview
    Par solaar dans le forum C#
    Réponses: 0
    Dernier message: 29/06/2013, 21h09
  2. [Débutant] TreeViewer & JFace DataBinding
    Par pingoui dans le forum Eclipse Platform
    Réponses: 27
    Dernier message: 16/08/2010, 17h07
  3. [DataBinding][XML] Explorer un fichier xml dans un Treeview
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 06/03/2009, 16h47
  4. [WPF] Databinding et combinaison de Treeview et Listview
    Par Mythrandil dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 06/03/2009, 14h31
  5. TreeView en SilverLight ?
    Par Bono_BX dans le forum Silverlight
    Réponses: 1
    Dernier message: 01/07/2008, 13h54

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