2009-12-04 7 views
4

Dans WPF, j'ai un ListView lié à une ObservableCollection dans le code-behind. J'ai un code de travail qui ajoute et supprime des éléments de la liste en mettant à jour la collection.Comment mettre à jour un élément listview associé à une collection dans WPF?

J'ai un bouton 'Editer' qui ouvre une boîte de dialogue et permet à l'utilisateur de modifier les valeurs de l'élément ListView sélectionné. Toutefois, lorsque je modifie l'élément, la vue de liste n'est pas mise à jour. Je suppose que c'est parce que je ne suis pas en train d'ajouter/supprimer des éléments de la collection, mais juste de modifier un de ses éléments. Comment puis-je indiquer à la vue de liste qu'il doit synchroniser la source de liaison?

Répondre

8

Vous devez mettre en œuvre INotifyPropertyChanged sur la classe d'élément, comme suit:

class ItemClass : INotifyPropertyChanged 
{ 
    public int BoundValue 
    { 
     get { return m_BoundValue; } 
     set 
     { 
      if (m_BoundValue != value) 
      { 
       m_BoundValue = value; 
       OnPropertyChanged("BoundValue") 
      } 
     } 
    } 

    void OnPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 

    int m_BoundValue; 
} 
+0

@Groky - Vous êtes un génie. C'est exactement ce dont j'avais besoin. Merci! –

1

Avez-vous défini le mode de liaison sur TwoWay? Sinon, essayez de le faire.

Questions connexes