Имам дъщерен прозорец със свързана виртуална машина, който се създава всеки път, когато поискам дъщерният прозорец да се отвори. когато детският прозорец се отвори, той регистрира слушател за MVVM Light съобщение. След като затворя прозореца, съм почти сигурен, че освобождавам всички препратки към него, но всъщност не извиквам dispose, защото не имплементира IDisposeable.
Когато създам друг дъщерен прозорец от същия тип и му изпратя различен контекст, знам, че получавам съобщението от предишния екземпляр на VM... всеки път, когато използвам прозореца, все повече и повече VM слушат и кодът се повтаря.
Как мога да съм сигурен, че моята предишна виртуална машина, която се е регистрирала да слуша съобщение, всъщност е била освободена и вече не е активна. Има ли детерминистичен начин да направите това?