MK>Может у кого еще имеются ссылочки на подобную тему.
Как-то плохо со ссылками.
В первую очередь, очень советую проверять наличие/отсутствие утечек памяти. Где-то тут уже была тема про это.
Последний memory leak, на который я наткнулась — хотела сделать статическую кисть, заморозить ее и использовать везде. Получилось, что если один раз ей что-нибудь нарисуешь, она не освобождает какие-то ссылки, т.е. каждое следующее рисование занимает все больше времени. Обошла тем, что каждый раз возвращаю клон от этой статической кисти.
Во вторую очередь — ничему не верить на слово, проверять с рефлектором.
Если много каких-то объектов, то не делать в каждом из них лишних байндингов или еще каких-то действий на всякий случай, а при необходимости работать с ними из контейнера.
Там, где не можете гарантировать отписку от событий, пользуйтесь WeakEvent паттерном (в MSDN описано).
Если во фрейме происходит навигация, то IDisposable каким-то чудом срабатывает. Похоже, что единственное такое место в WPF, можно пользоваться.