Mam w moim ViewModel zdarzenie.Zdarzenia w ViewModel z System.Windows.Interactivity.EventTrigger, czy to słabe odwołanie?
public class MyViewModel:ViewModelBase
{
...
public event EventHandler SomethingChanged;
private void FireEvent()
{
if (SomethingChanged != null)
SomethingChanged(this, EventArgs.Empty);
}
...
}
moim zdaniem, użyłem EventTrigger słuchać Event, aby wywołać akcję.
<i:Interaction.Triggers>
<i:EventTrigger EventName="SomethingChanged" SourceObject="{Binding}">
<i:SomeAction/>
</i:EventTrigger>
</i:Interaction.Triggers>
Działa doskonale. Jednak jestem ciekawy, czy istnieje możliwość wycieku pamięci? Ponieważ mój widok jest tworzony na żądanie, co oznacza, że kontrola jest dodawana i usuwana z drzewa wizualnego na podstawie użytkownika. Obiekt źródłowy (ViewModel) ma dłuższy czas życia niż słuchacz (widok). W związku z tym, używając powyższego kodu, czy zdarzenie nadal będzie miało silne odniesienie do usuniętego słuchacza (widok)?