2011-06-04 109 views
0

我正在關注如何在Silverlight中切換頁面的小教程。它可以在這裏找到:多頁Silverlight應用程序

http://jesseliberty.com/2008/05/31/multi-page-applications-in-silverlight/
它稍微老,但一切正常。

這裏使用的技術是有一個「導航功能」的單獨頁面。如果你在第一頁,你可以使用這樣的事情:

PageSwitcher ps = this.Parent as PageSwitcher; 
ps.Navigate(new Page2()); 

隨着導航是唯一的功能PageSwitcher:

public void Navigate(UserControl nextPage) { 
    this.Content = nextPage; 
} 

不過,這是處理方式似乎有點古怪。我仍然想知道添加一個新的用戶控制和頁面有什麼不同。我已經嘗試添加它們,它們看起來非常相似。

看起來這只是使用隱藏頁面來設計公共頁面之間的切換。這似乎在某種程度上對我來說很重要。有沒有其他方法?

回答

0

我認爲Page和UserControl之間的區別在於Page有一些導航方法,如NavigationService。

換另一種方法,查看Caliburn Micro的Screens and Conductors。它可以讓你輕鬆做一些高級導航的東西,看看示例,HelloScreens。它爲您的屏幕增加了生命週期。也有能力知道什麼時候視圖被綁定和好的東西那樣。

+0

@Derek_Beattie:我看了一下,嘗試了一些例子,我發現Caliburn變得很複雜。教程根本沒有幫助。我經常想知道什麼時候引入了某些東西,或者我是否需要在代碼中添加某些東西,或者只是在那裏引用源代碼。真的覺得這個項目假設你是一位擁有多年和多年經驗的專家。 – KdgDev 2011-06-09 14:25:52

+0

您仍然可以使用導航內容並使用MVVM Light messenger之類的東西來告訴NavigationFrame導航到另一個頁面。 CM我有一點曲線,我認爲他們所做的是輝煌的。沒有什麼比命名一個內容控件更容易,因爲x:Name =「ActiveItem」,並讓CM完成剩下的工作。 – 2011-06-09 17:36:53

+0

@Derek_Beattie:在我的搜索過程中,我注意到使用的幾個組件現在不再位於主Silverlight安裝中,而是單獨工具包的一部分。如果有幫助的話,明天見。 – KdgDev 2011-06-09 18:01:45