您的位置:知识库 » .NET技术

在Silverlight 2应用程序中切换用户控件

作者: TerryLee  来源: 博客园  发布时间: 2008-10-09 16:18  阅读: 5795 次  推荐: 0   原文链接   [收藏]  

改进

上面这种方式虽然达到了我们的目的,但是switch语句代码实在不怎么优雅,如果有几十个用户控件,那就得有几十个分支。既然我们在初始话参数中设置了起始用户控件名,为什么不直接使用反射呢?在Silverlight 2中,对于反射提供了很好的支持,所以我们的代码可以修改如下:

private void Application_Startup(object sender, StartupEventArgs e)
{
    if (!e.InitParams.ContainsKey("InitPage"))
    {
        this.RootVisual = new DefaultPage();
        return;
    }

    Assembly assembly = Assembly.GetExecutingAssembly();
    String rootName = String.Format("SwitchUserControl.{0}", e.InitParams["InitPage"]);
    UIElement rootVisual = assembly.CreateInstance(rootName) as UIElement;
    this.RootVisual = rootVisual;
}

现在代码看起来好多了,即便有再多的用户控件也不用再修改此处的代码。但是大家一定要注意一个问题,就是要合理的划分Silverlight项目,不要把所有的用户控件都放在一个项目里面,避免xap文件过大。在后面我还会写一篇文章来谈谈如何合理的划分Silverlight项目结构,以及如何调用其它xap文件中的用户控件。

总结

本文其实非常的简单,写这篇文章缘于最近很多朋友都问到这一问题,所以在这里做一下说明,主要是利用了InitParameters属性并结合反射来实现用户控件的切换。希望对大家有所帮助。

 

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻