Хорошая точка зрения. Прикрепленные события являются внешними ссылками.

ю, что когда вы регистрируете объект для прикрепленных событий мыши, у вас возникают утечки памяти. Вот почему вам нужно использоватьСлабый образец.

У меня проблема с этим шаблоном: если вы хотите использовать его, вы не можете определить свой обработчик в коде XAML.

Для меня это означает, что каждый подобный код просачивается:

<SomeControl Mouse.MouseDown="MyHandler" />

Если вы явно не удалите свой обработчик в коде (и я сомневаюсь, что кто-нибудь так поступит) Теперь есть кое-что, чего я не понимаю:

<Button Click="MyHandler" />

Этот код где-то использует событие Mouse.MouseDown для обнаружения нажатия на кнопку. Проведя некоторые исследования с отражателем, я обнаружил, что это событие использует MouseDown класса UIElement. И когда я читаю код UIElement, я не понимаю: WeakEventManager не существует!

Может кто-нибудь объяснить мне, как UIElement получает события от Mouse.MouseDown без утечки?

Ответы на вопрос(1)

Ваш ответ на вопрос