リークハンティングに関する別の投稿。
状況は非常に単純です。ピボットがあります。ピボットにはイベントがあります
SelectionChanged="MainPivot_OnSelectionChanged"
イベントハンドラはシンプル
private void MainPivot_OnSelectionChanged(object _sender, SelectionChangedEventArgs _e)
{
SimpleLogger.WriteLine(GetHashCode());
}
私はMVVM Lightを使用しており、DataContextはVMLocatorを介して設定されています。また、アプリケーションでループが発生する可能性があり、それらを回避したいため、Nonlinear Navigation Serviceを使用しています。
ただし、アプリをしばらく使用した後、MainPivotを1回スワイプした後、出力に表示されます
11:49:47.677 [00:01:36.9350000] 133186921
11:49:47.727 [00:00:00.0360000] 133188577
11:49:47.744 [00:00:00.0140000] 133186126
11:49:47.761 [00:00:00.0150000] 133188679
11:49:47.777 [00:00:00.0140000] 133188587
つまり、MainPivot ビューのインスタンスが 5 つあるということです。では、問題は次のとおりです。どうやってそれらを収集するのを妨げているのですか?
PS:InvokeCommandAction
の代わりに を使用していEventToCommand
ます。