3
在用於Windows Phone的Silverlight中我有幾個視圖模型是一次性的,並執行必要的清理,如Dispose()中的取消訂閱較長壽命服務的事件。導航回視圖時是否存在處理視圖模型的好模式?
當我瀏覽視圖堆棧並且最近的視圖模型完成其行爲完成時,我需要調用Dispose()。
以結構化的方式進行此操作的好方法有哪些?
在用於Windows Phone的Silverlight中我有幾個視圖模型是一次性的,並執行必要的清理,如Dispose()中的取消訂閱較長壽命服務的事件。導航回視圖時是否存在處理視圖模型的好模式?
當我瀏覽視圖堆棧並且最近的視圖模型完成其行爲完成時,我需要調用Dispose()。
以結構化的方式進行此操作的好方法有哪些?
如果是IDisposable
,則可以製作一個混合行爲或附加屬性,用於偵聽Unloaded event,然後在對象的DataContext
上調用Dispose()
。這可以在適當情況下附加到您的視圖。
這聽起來很有用,但我還沒有真正看到其他地方。這是你自己嘗試過的嗎? –
@JohannGerell是的,我現在正在我的一個項目中做這個。它工作正常。我需要這個強制保存/關閉某些ViewModel的調用,這很好。 –