我建立一个类似的iGoogle“仪表板”为我们的应用程序使用Silverlight 4动态添加用户控件到一个Silverlight 4页
每个用户信息中心(其中snapins和它们的位置),将存储在数据库中。每个管理单元都是一个用户控件,例如... AwesomeSnapin.xaml。
在silverlight中的仪表板页面上我正在检索用户仪表板,它是包含管理单元上的信息的管理单元对象的集合。我可以存储页面或类的名称或任何需要的名称。
我有以下代码,它通过管理单元集合循环来将它们添加到仪表板页面。在测试中,我只是硬编码一个单元项目。这里是原型代码:
foreach (var UserSnapin in op.Entities)
{
UserControl uc = new AmsiSL.eFinancials.BudgetCheck();
Canvas.SetLeft(uc, UserSnapin.PositionLeft);
Canvas.SetTop(uc, UserSnapin.PositionTop);
Layout.Children.Add(uc);
MessageBox.Show(String.Format("Added {0}",UserSnapin.Snapin.Name));
}
上述工作正常......但当然会为用户仪表板定义的每个项目添加BudgetCheck管理单元。当然,该消息框仅用于调试目的。
如何根据集合中的数据更改第3行以加载用户控件类(使用classname或xaml路径,以哪个更好为准)。
谢谢一旦我的项目在RTM中运行,我会尝试一下。我不确定反射是最好的方法还是加载XAML。 – PilotBob 2010-04-16 14:43:30
工程很好。谢谢你。 – PilotBob 2010-04-23 19:39:15