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 :

[Binding] - Problème de mis à jours


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier Avatar de Anto03
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 87
    Points
    87
    Par défaut [Binding] - Problème de mis à jours
    Bonjour,

    Je suis certain que mon problème est simple mais je ne vois pas le souci.
    J'ai une listBox dont le itemSource est défini ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ItemsSource="{Binding Source={StaticResource Ctrl}, Path=GetListOF, UpdateSourceTrigger=PropertyChanged}"
    Ma classe Ctrl hérite de l'interface INotifyPropertyChanged.
    En appuyant sur un bouton j'exécute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Public ReadOnly Property GetListOF() As List(Of IOrdreDeFabrication)
            Get
                Return _listOF
            End Get
        End Property
     
        Public Sub RemoveOF(ByVal myOf As IOrdreDeFabrication)
            _listOF.Remove(myOf)
            SendPropertyChanged("GetListOF")
        End Sub
    Ma liste contient bien un of de moins mais à l'affichage rien ne change. Par contre si je fais ce code à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Public Sub RemoveOF(ByVal myOf As IOrdreDeFabrication)
            Dim test As List(Of IOrdreDeFabrication) = _OfRepository.GetList()
            test.RemoveAt(0)
            _listOF = test
            SendPropertyChanged("GetListOF")
        End Sub
    Tout fonctionne bien ! J'ai tenté de mettre les modes "oneWay","TwoWay" etc à mon binding aucun changement...

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye d'utiliser une ObservableCollection pour ta liste, plutôt qu'une simple List generique. En effet, OC implémente les interfaces permettant de notifier l'IHM qu'une liste a été mise à jour.

  3. #3
    Membre régulier Avatar de Anto03
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 87
    Points
    87
    Par défaut
    Merci Thomas ça fonctionne plutôt bien (même très bien) juste une dernière question si je veux caster toute ma liste métier en observableCollection ya t'il un moyen simple et propre ?

    Parce que pour le moment je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Dim test As ObservableCollection(Of IOrdreDeFabrication) = New ObservableCollection(Of IOrdreDeFabrication)
                For Each item As Object In _listOF
                    test.Add(item)
                Next
     
                Return test
    Mais c'est pas booo

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Je voudrais savoir comment lors d'un Binding sur un ListView, par exemple, je peut ajouter plusieurs valeurs aux items: la valeur Text et la valeur Tag

    Merci

    Olivier.

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Anto03 Voir le message
    Merci Thomas ça fonctionne plutôt bien (même très bien) juste une dernière question si je veux caster toute ma liste métier en observableCollection ya t'il un moyen simple et propre ?

    Parce que pour le moment je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Dim test As ObservableCollection(Of IOrdreDeFabrication) = New ObservableCollection(Of IOrdreDeFabrication)
                For Each item As Object In _listOF
                    test.Add(item)
                Next
     
                Return test
    Mais c'est pas booo
    Dans le contructeurs de ton OC, tu peux indiquer l'instance de ta liste générique

  6. #6
    Membre régulier Avatar de Anto03
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 87
    Points
    87
    Par défaut
    Désolé mais le constructeur de l'OC ne prend qu'un seul paramètre : le type de ma collection. Ou alors je n'ai pas très bien compris ta suggestion

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu indiques certes le type de T dans ton OOC mais tu as une surcharge du constructeur qui prend une List<T>: http://msdn.microsoft.com/en-us/library/ms653202.aspx

  8. #8
    Membre régulier Avatar de Anto03
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 87
    Points
    87
    Par défaut
    Ah vooouiii ok désolé ma syntaxe était simplement incorrect voici la bonne utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Return New ObservableCollection(Of IOrdreDeFabrication)(_listOF)


    Merci beaucoup !

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

Discussions similaires

  1. Problème de mis à jour d'un row d'une JTable
    Par yassinove10 dans le forum Composants
    Réponses: 0
    Dernier message: 08/07/2011, 12h27
  2. [Binding] UserControl non mis à jour
    Par matrix_ceg dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 29/03/2010, 12h33
  3. problème de mis à jour d'un enregistrement
    Par FloFlo2 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/12/2009, 16h39
  4. Controles bindés ne se remettent pas à jour si data mis à jour dans une activité
    Par Harry_polin dans le forum Windows Workflow Foundation
    Réponses: 3
    Dernier message: 13/11/2008, 10h19
  5. Réponses: 1
    Dernier message: 07/05/2008, 17h09

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