我有一个显示多个“页面”的 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?
最佳答案
我假设每个页面都是一个 UserControl。如果是这种情况,那么您几乎已经在那里了。不是创建动态对象,而是创建一堆 UserControl 对象。
将您的代码更改为:
Type type = Type.GetType("Pages.Page_" + (index).ToString(), true);
UserControl newPage = (UserControl)Activator.CreateInstance(type);
关于silverlight - 动态生成 XAML 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3604334/