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

Windows Presentation Foundation Discussion :

XmlDataProvider et Treeview


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Par défaut XmlDataProvider et Treeview
    Bonjour,
    J'effectue un binding sur un treeview à partir d'un XmlDataProvider.
    Dans mon xaml, j'ai :

    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
    <Window.Resources>
     
            <HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource="{Binding XPath=./*}"  >
                <StackPanel Orientation="Horizontal">
                	<CheckBox x:Name="AfficherCacherBox" IsChecked="True" Click="Afficher_Cacher_Click" VerticalAlignment="Center"/>
    				<ContentPresenter x:Name="tb" Margin="5,0" Content="{Binding XPath={StaticResource myattribute}}" />
    			</StackPanel>
     
     
            </HierarchicalDataTemplate>
     
            <XmlDataProvider x:Key="xmlMetaData" XPath="/*">
                <x:XData>
                    <Root xmlns="">
                    </Root>
                </x:XData>
            </XmlDataProvider>
    </Window.Resources>

    et mon arbre :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      	<TreeView x:Name="arbre" ItemTemplate= "{StaticResource NodeTemplate}"
    	                ItemsSource="{Binding Source={StaticResource xmlMetaData}}"  />
    Je renseigne dans mon code le fichier xml :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    XmlDataProvider dp = (XmlDataProvider)this.FindResource("xmlMetaData");
    XmlDocument doc = new XmlDocument();
    doc.Load("file.xml");
    dp.Document = doc;

    Ensuite, j'ai besoin de parser tous les items de mon arbre avec une fonction récursive, mais le problème est que lorsque je lance cette fonction juste après "dp.Document = doc"
    l'arbre n'a pas fini de se remplir.
    Comment est-il possible de savoir lorsque tous les noeuds ont été chargés?
    Je cherche à lancer ma fonction quand tous les noeuds sont chargés.
    Comment-faire?
    Merci pour votre aide!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Par défaut
    En fait, je voudrais connaître lorsque le databinding est terminé.
    Je voudrais lancé un évènement lorsque le databinding est terminé.
    Pouvez-vous m'aidez, s'il vous plaît?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    tu veux savoir quand le databinding est terminé c'est a dire quand le treeview a cree ses treeviewitems ? (bref que le visualtree a ete crée)

    si c'est le cas tu as un Evénement sympa sur le c'est ContentRendered
    sur la fenetre qui te permet de savoir que tout a ete crée

    maintenant précise ce que tu veux exactement
    notament par ce que si c virtualisé tout n'est pas "rendu"

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Par défaut
    Bonjour,
    Merci pour ta réponse!
    J'ai essayé de mettre l'évènement Contentrendered sur la fenêtre mais l'évènement n'est pas déclenché lors de la création du treeview.
    Et je n'ai pas trouvé comment affecter cet évènement au treeview.
    En fait, je créer mon treeview après la création de fenêtre avec une fenètre openfiledialog qui m'ouvre un fichier xml pour la création du treeview.
    Peux-tu m'aider?

Discussions similaires

  1. Treeview avec checkbox et xmldataprovider (reformulation du problème)
    Par lucielemon dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 11/12/2012, 16h31
  2. [TreeView][XmlDataProvider] Comment faire un reset
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 25/07/2012, 10h24
  3. [TreeView][XmlDataProvider] Trier les éléments
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 30/03/2012, 17h39
  4. wpf treeView xmldataprovider
    Par babyboo dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 25/05/2010, 11h51

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