我有一個包含TabControl的視圖(我將其稱爲MainView)。構成TabItem的視圖是在MainView的ViewModel中使用棱鏡view discovery創建的。當我完成選項卡控制時(即在MainView的Unloaded
事件期間),「選項卡」的每個視圖都需要完成一些清理(分離事件處理程序等)。但是,我無法使用Tab視圖'Unloaded
事件進行清理,因爲這僅在切換選項卡時纔會調用。當父視圖被卸載時,如何清理TabControl中的視圖?
當觸發Unloaded
時,MainView在其ViewModel上調用方法,但由於這些視圖的註冊方式,ViewModel沒有對構成選項卡的Views或ViewModel的引用。在「發現」選項卡視圖後清理的正確方法是什麼?
感謝您的答覆。我最終做的是使用EventAggregator模式將消息發佈到父視圖正在關閉的子視圖,並在此時執行任何清理。雖然你的解決方案看起來更優雅。 –
我們實際上有一個使用EventAggregator的ApplicationClosing事件,所以任何後臺進程都可以準備關閉。我認爲這也是很好的解決方案,只是不使用它來關閉打開的視圖。 – Brad