Dans un modèle de vue, j'ai une collection d'éléments de type « ClassA » appelés « MaCollection ». ClassA a une propriété nommée "IsEnabled".WPF - OnPropertyChanged pour une propriété dans une collection
class MyViewModel
{
List<ClassA> MyCollection { get; set; }
class ClassA { public bool IsEnabled { get; set; } }
}
Ma vue possède une grille de données qui se lie à MyCollection. Chaque ligne a un bouton dont l'attribut « IsEnabled » est lié à la propriété IsEnabled de ClassA.
Lorsque les conditions dans la vue changement de modèle tel qu'un élément particulier dans la liste des MyCollction doit se plier être désactivé, je mis la propriété IsEnabled false:
MyCollection[2].IsEnabled = false;
Je veux maintenant informer la vue de cette change avec un événement OnPropertyChanged, mais je ne sais pas comment faire référence à un élément particulier dans la collection.
OnPropertyChanged("MyCollection");
OnPropertyChanged("MyCollection[2].IsEnabled");
les deux ne fonctionnent pas.
Comment avertir la vue de ce changement? Merci!
Le ObservableCollection n'est pas nécessaire - mettre en œuvre INotifyPropertyChanged était suffisante . Merci! –
Eh bien, il suffit d'être averti lorsque IsEnabled est modifiée, mais si des éléments sont ajoutés ou supprimés de MyCollection, vous ne serez pas informé à moins qu'il soit un ObservableCollection (ou toute classe qui implémente INotifyCollectionChanged) –