我已經構建了一個類庫,它可以作爲一個GUI框架,可以被其他項目繼承。此應用程序基於項目Wild和Gemini。MVVM應用程序沒有正確恢復狀態
我的問題是,在恢復阿瓦隆碼頭的佈局採用標準串行
var layoutSerializer = new XmlLayoutSerializer(manager);
其中manager
是類型DockingManager
。經理恢復並清空標籤。我的猜測是Caliburn Micro無法找到存儲的ViewModel(名爲HomeViewModel
)。不過,我正在努力證實這一點。
我相信我的引導程序是正確的,並且正在正確設置MEF容器以允許解析外部類型。我已經調試項目到一個點,我認爲這個問題正在發生,並在輸出窗口中,我可以看到Attach(Home)
發生附件的位置(注意,「Home」是HomeViewModel
的顯示名稱)。但是,我不知道附加過程出了什麼問題,因爲這是由MEF/Caliburn處理的。
我真的堅持調試此一想,如果
- 任何一個可以提供任何有見地的意見,如何與調試過程中進行?
- 任何人都願意看看解決方案?
我花了很多時間調試這個沒有任何運氣,這個問題足夠深奧和虛幻,以至於使大多數帖子在這裏與我無關。
謝謝你的時間。
能重現這一問題的工作樣本,將不勝感激。 – pushpraj 2014-09-03 07:10:34
嗨@pushpraj,非常感謝您的回覆。這一個正在殺死我!這是一個鏈接到項目http://1drv.ms/1A4v40R的GUI部分。它不是最小的,因爲我也包含了包文件夾。如果你能幫助我,我會願意代表你。另外,一旦你下載了這個,你可以讓我知道,所以我可以鎖定它。非常感謝...... – MoonKnight 2014-09-03 08:48:52
如果您構建項目並運行它,您將看到「主頁」選項卡被打開。現在,默認情況下,所有'Documents'對象或更確切的'LayoutItemBase'對象的ShouldReopenOnStartup屬性都設置爲false。但是,如果關閉應用程序並打開「主頁」選項卡,則會創建「ApplicationState.bin」,您將看到「HomeViewModel」被寫入到已打開的文檔中。現在,當程序開始備份時,這些項目不應該被恢復,但它是。我的想法是MED/CaliburnMicro找不到這種類型... – MoonKnight 2014-09-03 09:03:22