我希望在我的Silverlight应用程序中动态生成一些控件。
更明确地说,这是我类的简化定义:
public class TestClass
{
[Display(Name="First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
public List<CustomProperty> CustomProperties { get; set; }
}
每个“CustomProperty”最终会成为一个文本框、复选框或组合框:
public class CustomProperty
{
public CustomDataType DataType { get; set; } //enum:integer, string, datetime, etc
public object Value { get; set; }
public string DisplayName { get; set; }
public string Mappings { get; set; } // Simulating enums' behavior.
}
如何最好地使用MVVM模式实现这个功能?如果我在ViewModel中解析CustomProperties,并找出应该创建哪些控件,如何基于MVVM模式在我的视图中创建新的控件。
有没有任何Silverlight控件可以帮助我加快UI速度?
我能否以编程方式定义数据注释?例如,在解析自定义属性后,我能否向属性添加一些数据注释(Display、Validation),并将其绑定到DataForm、PropertyGrid或适用于此情况的有用控件?
谢谢。