使用Silverlight,PRISM和MVVM进行动态控制显示

时间:2010-01-06 16:41:09

标签: silverlight mvvm prism

在我正在创建的应用程序的框架中,我可以将多个“插件”添加到“工作区”中,可以根据需要重新排列和重新调整大小。我希望每个插件能够使用WorkspaceManager(通过IWorkspaceManager接口公开)类注册WorkspaceParameters(所有插件共享的全局参数)。当插件注册一个全局参数时,WorkspaceManager首先检查一个名称是否与已注册的名称相同,如果已注册,则插件只是在订阅时更改通知。如果尚未使用给定名称创建一个,则会创建一个新名称。 WorkspaceParameter类目前看起来像这样:

public class WorkspaceParameter
{
    public string Label { get; set; }
    public Type ParameterType { get; set; }
    public object Value { get; set; }
}

然后,我在应用程序中有一个视图,我想显示每个WorkspaceParameter,以便用户能够更改值。 UI应基于每个WorkspaceParameter的ParameterType成员,并且所有参数都应显示在StackPanel中。例如,如果Type是DateTime,我想显示一个文本框,旁边有一个日历选择器。如果它是一个字符串,一个简单的文本框,旁边有一个标签,最后一个,如果是枚举类型,则是一个带有可用枚举选项的下拉列表。

如何使用PRISM和MVVM的原理实现此动态视图?

1 个答案:

答案 0 :(得分:0)

我建议看一下Glenn Block的一系列Blogpost。 在上一篇文章中,他重构了他使用mvvm模式的解决方案。 他大量使用MEF,这是一个可扩展的框架。

这是一个sequal的第5号请阅读所有这些基本上你正在寻找的东西。

http://msmvps.com/blogs/theproblemsolver/archive/2009/02/18/getting-started-with-the-repository-pattern-in-silverlight.aspx