2015-10-01 64 views
0

我有一個分爲三行的網格。最上面一行有菜單選項。中排有另一個網格分成兩列。左欄有一個框架(frameleft),右欄有一個框架(frameright)。當用戶點擊頂部菜單時,frameleft會加載一個顯示該選項子菜單的頁面。在框架內導航外部框架wpf c#

當他們點擊其中一個子菜單時,我想在frameright上加載一個頁面,但不知道如何去做。在主窗口我可以把它通過

frameright.Navigate(new DetailPage()). 

但我對frameleft頁面(MenuPage)當我不能夠調用它。

我不知道如何從不同的框架或頁面內撥打

frameright.navigate 

方法。 請幫忙。

回答

0

你可以使用EventAggregator來達到這個目的。

的EventAggregator服務主要是針對事件 允許出版商和用戶的解耦,使他們能夠獨立發展 的容器。這種解耦在模塊化應用程序 中很有用,因爲可以添加新模塊以響應由 shell或更可能的其他模塊定義的事件。例如

噸可以通過谷歌搜索「棱鏡EventAggregator」中找到

+0

我GOOGLE了棱鏡EventAggregator但似乎太多了簡單的命令。我只想將頁面加載到框架中。我會繼續尋找。不是我不想花時間,但我希望有一個更簡單的解決方案。我感謝您的幫助! – NetCollector

+0

看。讓我們理解正確的概念。看看你想要做的是一個純粹的C#對象。你有3種不同的選擇來解決你的問題。如果你想讓你的對象完全解耦,那就得到像EventAggregator一樣的東西。 2.更改您的設計,以便您的父對象(Menu)實際上包含要操作的對象實例(Columns)。 3.從菜單中選擇某種「定位器」方法搜索您的控件並找到您的列。你可以通過邏輯視圖搜索來做到這一點。這3個是我所知道的更直接的方法。合理 ? – cscmh99

+0

感謝您的建議。我實際上最終從框架內部完成了它。我將我的頁面加載到一個框架中,並在其中有子框架,並以此方式處理它。感謝大家的意見。 – NetCollector