2009-10-07 82 views
2

在我的應用程序中,我只需要一次可見的視圖,這就是爲什麼我在我的shell中使用ContentControl的原因。問題是,如果我有一個視圖可見(讓我們說View1)並激活View2,那麼一切都很好。現在,用戶在View2上按下「關閉」按鈕,之後用戶最終將立即查看黑屏,因爲現在沒有視圖處於活動狀態。我想區域適配器在激活下一個視圖之前關閉當前活動的視圖。WPF - Prism - 激活和停用ContentControl區域中的視圖

如何確保先前活動的視圖再次變爲激活(從我的示例中的視圖1)?我是否需要不同類型的區域才能實現此功能?

由於提前,

阿里

回答

1

不幸的是(因爲你發現了),這是不是行爲。你必須跟蹤你的觀點並自己激活前一個。

Jeremiah評論並讓我思考一個這樣的行爲。我認爲ActiveAware行爲可能是追蹤活動/非活動事件並可能對其採取行動的行爲的一個很好的模型。

以下是ActiveAware行爲的源代碼。你可以用這個模型作爲你想要的行爲的起點,我很確定。 http://compositewpf.codeplex.com/SourceControl/changeset/view/26112#496678

+0

這就是我目前的做法。你認爲自定義區域適配器/行爲是否適合這樣的事情? –

+0

好的建議。我會發布一些可能是一個很好的起點。我認爲ActiveAware的行爲在邏輯上非常接近。 –

+0

Jeremiah,你現在用什麼方法來跟蹤這個?從某種意義上講,您如何處理其他模塊中存在的視圖?如果Module1中的一個視圖被禁用,則前一個視圖可能存在於Module2中。事件聚合還是某種服務?最終誰管理視圖列表?感謝您的建議,我還會檢查Anderson的想法。 – Ali

相關問題