Creación dinámica de controles siguiendo el patrón MVVM

Me gustaría generar dinámicamente algunos controles en mi aplicación Silverlight.
ara ser más claro, aquí hay una definición simplificada de mi clase:

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; }
}

Cada "CustomProperty" finalmente será TextBox, CheckBox o ComboBox:

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.
}

¿Cuál es la mejor manera de implementar esto usando el patrón MVVM? Si analizo CustomProperties en ViewModel y descubro qué controles deben crearse, ¿cómo puedo crear nuevos controles en mi vista según el patrón MVVM?

Existe algún control de Silverlight que pueda ayudarme a acelerar la IU?

¿Puedo definir anotaciones de datos mediante programación? por ejemplo, después de analizar la propiedad personalizada, ¿puedo agregar algunas anotaciones de datos (Pantalla, Validación) a la propiedad y vincularla a un DataForm, PropertyGrid o un control útil para esta situación?

Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta