【发布时间】:2010-08-31 05:38:08
【问题描述】:
我有一个显示许多“页面”的 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?
【问题讨论】:
-
第一个答案是正确的,但听起来您的网站应该是数据驱动的。人为设计的页码系统通常表明存在设计问题。如果您让我们更多地了解您要解决的实际业务问题,我们或许能够提供更好的解决方案。干杯
-
页码系统当然是人为设计的,但在这种情况下,它是设计的。这些页面是从 Microsoft Word 文档生成的,然后插入到 Silverlight 应用程序中,并且可以随时更改。在这种情况下,页码确实很有意义。无论如何,在这种特定情况下,“页面”将仅存在于允许用户滚动浏览内容的静态 Silverlight 应用程序中。编号系统无关紧要,只要它是必然的。
标签: silverlight dynamic c#-3.0