2011-06-04 110 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