Bonjour,
Je suis face à un problème que je n'arrive pas à résoudre, peut être quelqu'un pourrait-il m'aider :
J'ai une class Main avec une ObservableCollection.
Je "Listen" les changements sur cette Collection "CollCfe_CollectionChanged"
Je "Listen" également les propriété des objets de cette collection.
Ce que je voudrais c'est : "Listen" les changements dans un objet de ma collection d'objet
En code :COLL[]
OBJETSTRING==> comment faire pour savoir que cette variable à été modifiée depuis la classe ou se trouve ma collection ?
CLASS main contenant
la collection COLL[]
CLASS contenant mon OBJECT
Code : 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
19
20
21
22
23
24
25
26
27 class Main { ObservableCollection<ConfigElem> collCfe = new ObservableCollection<ConfigElem>(); public ObservableCollection<ConfigElem> CollCfe { get { return collCfe; } set { collCfe = value; RaisePropertyChanged("CollCfe"); } } public Main() { collCfe.CollectionChanged += CollCfe_CollectionChanged; } void CollCfe_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { // Add if (e.NewItems != null) ((ConfigElem)e.NewItems[0]).PropertyChanged += onPropertyChanged; // Remove if (e.OldItems != null) ((ConfigElem)e.OldItems[0]).PropertyChanged -= onPropertyChanged; } void onPropertyChanged(object sender, PropertyChangedEventArgs e) { "J AIMERAI INTERCEPTER LES CHANGEMENT DE UneChaine ICI ..." } }
CLASS concernant ma STRING que je veux savoir si elle à été updatée
Code : 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
19
20
21
22 class ConfigElem { SubClass myObject; public SubClass MyObject { get { return myObject; } set { myObject = value; RaisePropertyChanged("MyObject"); } } ************* NE FONCTIONNE PAS A CAUSE DE ((ConfigElem)e.NewItems[0]).PropertyChanged += onPropertyChanged; QUI SEMBLE MASQUER ******************** public ConfigElem() { MyObject.PropertyChanged += onPropertyChanged; } void onPropertyChanged(object sender, PropertyChangedEventArgs e) { "OU .... LES INTERCEPTER ICI ..." } ********************************************************************************************************************************* }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Class SubClass { String uneChaine; public String UneChaine { get { return uneChaine; } set { uneChaine = value; RaisePropertyChanged("UneChaine"); } } }
Partager