Я создал "прикрепленное поведение" в своем приложении WPF, которое позволяет мне обрабатывать нажатие Enter и перейти к следующему элементу управления. Я называю это EnterKeyTraversal.IsEnabled, и вы можете увидеть код в моем блоге здесь.
Моя основная проблема заключается в том, что у меня может быть утечка памяти, так как я обрабатываю событие PreviewKeyDown на UIElements и никогда явно не "отцепляю" событие.
Какой лучший подход для предотвращения этой утечки (если вообще есть)? Должен ли я хранить список элементов, которыми я управляю, и отменить событие PreviewKeyDown в событии Application.Exit? Кто-нибудь имел успех с прикрепленным поведением в своих приложениях WPF и придумал элегантное решение для управления памятью?