silverlight - 动态生成 XAML 对象

标签 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?

最佳答案

我假设每个页面都是一个 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/

相关文章:

css - 如何在不在 css 中重复图像的情况下添加大内容时拉伸(stretch)背景图像

iphone - 将按钮动态添加到 uitableviewcell - iPhone 应用程序

c# - 对象到字符串数组

c# - .net 库不从 app.config 中选择 key

xml - 从 Web 服务加载 XML

c# - 使用 Prism 根据对象类型将 View 注入(inject) ItemsControl

javascript - jQuery 将 CSS 类添加到动态创建的元素

silverlight - 是否可以在 Silverlight 网络应用程序和 Windows Phone 7 应用程序之间共享代码

wpf - MVVM - 在 Silverlight 和 WPF 之间共享/重用 ViewModel

silverlight - 动态加载的 xap 中的 WCF 服务调用失败