Bonjour,
j'ai trois classes comme celles-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Objet business public class Customer { public String firstName {get; set;} public String lastName {get; set;} public int age {get; set;} public String sens { get; set; } }
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 // Classe abstraite generique me permettant de factoriser le code pour implementer les interfaces IDataErrorInfo et INotifyPropertyChanged public abstract class GenericControler<T> : IDataErrorInfo, INotifyPropertyChanged where T : new() { (...) // methodes pour IDataErrorInfo et INotifyPropertyChanged #region Generic Controler protected T baseObject {get; set;} public GenericControler() { baseObject = new T(); } public abstract string validate(string propertyName); #endregion }et je voudrais arriver à ça:
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 // La classe controler concrete public class CustomerControler : GenericControler<Customer> { public String FirstName { get { return baseObject.firstName; } set { baseObject.firstName = value; this.OnPropertyChanged(new PropertyChangedEventArgs("First Name")); } } public String LastName { get { return baseObject.lastName; } set { baseObject.lastName = value; this.OnPropertyChanged(new PropertyChangedEventArgs("Last Name")); } } public int Age { get { return baseObject.age; } set { baseObject.age = value; this.OnPropertyChanged(new PropertyChangedEventArgs("Age")); } } public String Sens { get { return baseObject.sens; } set { baseObject.sens = value; this.OnPropertyChanged(new PropertyChangedEventArgs("Sens")); } } (...)
L'idée étant que mon attribut m'évite d'écrire pour chaque Property
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class CustomerControler : GenericControler<Customer> { [objectReference(baseObject.firstName, "FirstName")] public String FirstName {get; set;} [objectReference(baseObject.lastName, "LastName")] public String LastName {get; set;} [objectReference(baseObject.age, "Age")] public int Age {get; set;} [objectReference(baseObject.sens, "Sens")] public String Sens {get; set;} }
Est-ce possible? Si oui comment?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set { baseObject.attribut = value; this.OnPropertyChanged(new PropertyChangedEventArgs("Attribut")); }
Je suis preneur de tout autre moyen de m'eviter à écrire le dernier bout de code pour chacun des attributs de ma classe business dans la classe controler representant ma classe business
C'est exactement ce qu'explique databinding avancé sauf que je comprends rien au tuto..
donc si qqun pouvait juste me montrer au moins une piste du bout de code necessaire, ce serait cool
Partager