PropertyChangedEventManager: AddHandler против AddListener - PullRequest
0 голосов
/ 30 августа 2018

Как указано здесь , класс PropertyChangedEventManager

Предоставляет реализацию WeakEventManager, так что вы можете использовать шаблон «слабый приемник событий» для присоединения слушателей к событию PropertyChanged.

Существует два способа подписки на изменения свойств:

void AddHandler (INotifyPropertyChanged source, EventHandler<PropertyChangedEventArgs> handler, string propertyName)
void AddListener (INotifyPropertyChanged source, IWeakEventListener listener, string propertyName)

В итоге оба они вызывают один и тот же метод:

private void AddListener(INotifyPropertyChanged source, string propertyName, IWeakEventListener listener, EventHandler<PropertyChangedEventArgs> handler)

с listener или handler, установленным на ноль.

Мне нужно изменить код с сильными обработчиками событий (т.е. source.PropertyChange += handler;), чтобы следовать слабому шаблону. Это тривиально с использованием метода AddHandler. Есть ли причины предпочитать AddListener (что требует от меня реализации IWeakEventListener)?

Если бы мне пришлось писать новый код, каковы причины, по которым я бы предпочел один код другому?

...