Crear un DataTemplate de Silverlight en el código

¿Cómo creo una plantilla de datos Silverlight en el código? He visto muchos ejemplos para WPF, pero nada para Silverlight.

Editar: Aquí está el código para el que ahora estoy usando esto, basado en la respuesta de Santiago a continuación.

public DataTemplate Create(Type type) { return (DataTemplate)XamlReader.Load( @"  " ); } 

Esto funciona muy bien y me permite cambiar el enlace sobre la marcha.

Aunque no puede crearlo programáticamente, puede cargarlo desde una cadena XAML en un código como este:

  public static DataTemplate Create(Type type) { return (DataTemplate) XamlReader.Load( @" <" + type.Name + @"/> " ); } 

El fragmento anterior crea una plantilla de datos que contiene un solo control, que puede ser un control de usuario con los contenidos que necesita.

Tuve algunos problemas con este código, obteniendo excepciones de elemento no creado. Solo como referencia, era que necesitaba mi espacio de nombre incluido en DataTemplate …

 private DataTemplate Create(Type type) { string xaml = @" "; return (DataTemplate)XamlReader.Load(xaml); } 

Sí, Silverligt 4 es más antiguo que las versiones actuales de WPF. Cuando agrega una plantilla como recurso, es decir, como lo hice, agregué una plantilla de control de usuario en Application.xaml MergedResources entre ResourceDictionary. En XAML si la etiqueta implementada IDictionary puede usar x: atributo clave. Como eso

       

¡De acuerdo! Puede acceder a su plantilla codificando que, Application.Current.resources [“TextBoxEditTemplate”], por otro lado, algunos métodos para encontrar miembros de esta plantilla no funcionarán. Además de esto, DataTemplate no implementa IDictionary, por lo que no puede asignar atributos x: Key para los elementos en este dataTemplate. como myOwnControl en el ejemplo.

Sin xaml current silverlight tiene algunas restricciones sobre la creación completamente dinámica de código detrás de DataTemplates.Incluso funciona en WPF.

De todos modos, la mejor solución para este punto es la creación del script XAML para datatemplate. Puede asignar algún elemento de valores al script DataTemplate. Creamos nuestros propios controles de usuario y tenemos algunas propiedades con DependencyObjectProperty …

Por último, si su objeto no tiene herencia, es decir, no es un MyControl: UserControl, puede heredar MyObject: DependencyObject, de esta manera puede llegar a su objeto al llamar como Application.Current.Resources.FirstChilderen …

FindName solo funciona en WPF

cita de MSDN :

El uso de XAML que define el contenido para crear una plantilla de datos no se expone como una propiedad configurable. Es un comportamiento especial integrado en el procesamiento XAML de un elemento de objeto DataTemplate.