У меня есть дочернее окно со связанной виртуальной машиной, которая создается каждый раз, когда я прошу открыть дочернее окно. когда дочернее окно открывается, оно регистрирует прослушиватель для сообщения MVVM Light. После того, как я закрою окно, я почти уверен, что освобождаю все ссылки на него, но на самом деле я не вызываю dispose, потому что он не реализует IDisposeable.
Когда я создаю экземпляр другого дочернего окна того же типа и отправляю ему другой контекст, я знаю, что получаю сообщение от предыдущего экземпляра виртуальной машины... каждый раз, когда я использую окно, все больше и больше виртуальных машин слушают , и код повторяется.
Как я могу быть уверен, что моя предыдущая виртуальная машина, которая зарегистрировалась для прослушивания сообщения, действительно была выпущена и больше не активна. Есть ли детерминированный способ сделать это?