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 :

[TreeView][XmlDataProvider] Comment faire un reset


Sujet :

Windows Presentation Foundation

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut [TreeView][XmlDataProvider] Comment faire un reset
    Bonjour,

    J'ai créé un custom Menu dont les données proviennent d'un XmlDataProvider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private XmlDataProvider mDataProvider = new XmlDataProvider();
     
    Binding itemsSourceBinding = new Binding();
    itemsSourceBinding.Source = this.mDataProvider;
    itemsSourceBinding.XPath = "*";
    BindingOperations.SetBinding(this, MyMenu.ItemsSourceProperty, itemsSourceBinding);
    J'aimerais par la suite faire un reset des données pour pouvoir ensuite ajouter des items "manuellement", directement via la propriété Items.

    J'ai essayé en utilisant XmlDocument:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ICollectionView view = (ICollectionView)CollectionViewSource.GetDefaultView(this.ItemsSource);
    XmlElement element = (XmlElement)view.CurrentItem;
    XmlDocument doc = element.OwnerDocument;
    doc.RemoveAll();
    Egalement, en faisant un clear du binding:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BindingOperations.ClearBinding(this, MyMenu.ItemsSourceProperty);
    Malheureusement, à chaque que j'essaye de modifier Items, j'ai une exception de type "Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead."

    Est-ce qu'il existe une solution pour faire un reset "propre" ? Est-ce qu'il faut également faire un reset pour chaque élément du TreeView ?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    C'est un peu "crade" mais ceci devrait peut être fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    itemsSourceBinding.Source = null;
    En gros, redéfinir le binding à null.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut
    Finalement, j'ai trouvé d'où venait le problème.
    Avant de faire le Clear du binding
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BindingOperations.ClearBinding(this, MyMenu.ItemsSourceProperty);
    je mettais à null la source du XML data provider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.mDataProvider.Source = null;
    Ca ne permettait pas de libérer proprement les resources.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un reset d'une variable
    Par java250r dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/04/2012, 14h28
  2. Treeview liste d'images + champ image : très lent, comment faire ?
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 3
    Dernier message: 01/11/2006, 17h59
  3. Comment faire un Collapse "All" sur un TreeView ?
    Par Le Marin dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/09/2006, 10h39
  4. [c#] comment faire pour garder des noeuds ouverts treeview?
    Par irnbru dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/11/2005, 00h47
  5. [C#] Comment faire pour élargir un treeview?
    Par irnbru dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/11/2005, 10h10

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