Salut,
J'ai poussé mamie dans les orties, et j'ai pris un retour de flemme...
Je veux faire une collection et une collection ordonnée, les deux observables mais abstraites pour pouvoir tout gérer trop facilement à la fin.
J'ai juste un souci pour le ProperyChanged dans la classe héritière, j'ai trouvé ça : https://msdn.microsoft.com/fr-fr/library/hy3sefw3.aspx
Mais c'est à l'ancienne pas avec INotifyPropertyChanged.
Alors... Voici le code (ne m'insultez pas, je découvre).
Pour préserver votre santé mentale, je ne met que le nécessaire
D'abord, l'item de base, T c'est le type du Id de la base de données (Guid ou Int)
Puis, l'item lorsque il y a ordonnancement
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 [Serializable] public abstract class _LookupItemBase<T> : ITable<T>, INotifyPropertyChanged { //Faites moi confiance, j'ai bien déclaré les membres privés public event PropertyChangedEventHandler PropertyChanged; public T Id { get { return _id; } set { _id = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Id")); } } public string Name { get { return _name; } set { _name = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Name")); } } public _LookupItemBase(){} //Constructeur neutre pour que la sérialisation fonctionne public _LookupItemBase(T id, string name) { this._id = _id; this._name = name; } }
Après, j'ai la liste et la liste ordonné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
23
24
25
26
27
28 [Serializable] public abstract class _OrderedLookupItemBase<T> : _LookupItemBase<T> { private int _sortIndex; public int SortIndex { get { return _sortIndex; } set { _sortIndex = value; //Ci dessous ce que je n'arrive pas à faire //if (base.PropertyChanged != null) // PropertyChanged(this, new PropertyChangedEventArgs("Description")); } } public _OrderedLookupItemBase(T id, string name, string description, int sortIndex) : base (id, name, description) { this._sortIndex = sortIndex; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [Serializable] public abstract class _ObservableLookupBase<T> : ObservableCollection<_ObservableLookupItemBase<T>> { }En commentaire ce que je n'arrive pas à faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [Serializable] public abstract class _OrderedLookupBase<T> : _LookupItemBase<T> where T : _OrderedLookupItemBase<T> { }
La cerise sur le gâteau serait que lorsqu'une propriété d'un élément de la liste change ça cascade l'évent jusqu'à la liste...
Je vous promets, je me soigne pour ça, mais qu'est-ce que j'aime
D'avance merci pour votre aide...
Partager