Bonjour,

Voici mon soucis :

Soit des classes A et B.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
class B : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
...}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class A : INotifyPropertyChanged
{
private B m_BInstance;
public event PropertyChangedEventHandler PropertyChanged;
}
Ce que je veux c'est que quand je m'abonne à PropertyChanged de ma classe A, ma classe A s'abonne à PropertyChanged de l'instance de la classe B. Bref un chainage d'event. Le soucis c'est que si je modifie ma classe A en fesant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
class A : INotifyPropertyChanged
{
private B m_BInstance;
public event PropertyChangedEventHandler PropertyChanged;
//Constructeur
A()
{
B.PropertyChanged += new PropertyChangedEventHandler(m_B_PropertyChanged);
}
}
Ma classe A est systèmatiquement abonnée à PropertyChangedEventHandler de ma classe B. Hors je ne voudrais m'abonner à PropertyChangedEventHandler de B uniquement si A est abonné à PropertyChangedEventHandler.

Alors la solution qui consiste à créer une méthode "Abonne" qui déclanche l'abonnement ne me convient pas car je fais ces implémentations d'interfaces pour pouvoir binder mes objets métiers et le framework .NET n'appellera pas d'autres méthodes/event que ceux des interfaces utilisées.

Le fait d'être systèmatiquement abonné ne me plait pas non plus car j'ai peur que ça entrainnne des baisses de performance.

J'espère avoir été clair


d'avance