动态生成XAML对象

时间:2010-08-30 21:25:57

标签: silverlight dynamic c#-3.0

我有一个Silverlight应用程序,显示了许多“页面”。每个页面都是一个不同的XAML文件,后面有不同的代码。页面按顺序编号如下:page_1,page_2,page_3,...,Page_n。页面不是静态的,将动态生成。

由于我不知道总页数,我必须使用Dynamic关键字在运行时加载每个页面。我的代码完全正常工作如下:

Type type = Type.GetType("Pages.Page_" + (index).ToString(), true);
dynamic newPage = Activator.CreateInstance(type);

我的问题是我刚刚得知应用程序必须是Silverlight 3,因此,它将无法使用动态类型。我已经尝试将“动态”更改为“对象”,但我需要能够访问每个页面上的XAML并操纵XAML。如果我只需要访问属性和方法,我就可以按照解决方案创建动态对象here

如何动态创建每个页面并仍然能够访问XAML?

1 个答案:

答案 0 :(得分:1)

我假设每个页面都是UserControl。如果是这种情况那么你就已经存在了。而不是创建动态对象,创建一堆UserControl对象。

将您的代码更改为:

Type type = Type.GetType("Pages.Page_" + (index).ToString(), true);
UserControl newPage = (UserControl)Activator.CreateInstance(type);