Tengo un control personalizado que tiene un ContentPresenter que tendrá un objeto arbitrario como contenido. Este objeto no tiene ninguna restricción sobre su tipo, por lo que quiero que este control muestre su contenido en función de las plantillas de datos definidas por la aplicación o por las plantillas de datos definidas en Generic.xaml. Si en una aplicación defino alguna plantilla de datos (sin una clave porque quiero que se aplique automáticamente a objetos de ese tipo) y utilizo el control personalizado vinculado a un objeto de ese tipo, la plantilla de datos se aplica automáticamente. Pero tengo algunas plantillas de datos definidas para algunos tipos en generic.xaml donde defino el estilo de control personalizado, y estas plantillas no se aplican automáticamente. Aquí está el generic.xaml:¿Cómo se pueden aplicar automáticamente las plantillas de datos en generic.xaml?
< DataTemplate Tipo de datos = "{x: Tipo PredefinedType > < - definición de plantilla - > <DataTemplate>
< Estilo TargetType =" {x: Tipo CustomControl}" > < - estilo de control - > </estilo >
Si configuro un objeto del tipo 'PredefinedType' como el contenido en el contentpresenter, la plantilla de datos no se aplica. Sin embargo, si funciona si defino la plantilla de datos en la aplicación.xaml para la aplicación que está utilizando el control personalizado.
¿Alguien tiene una pista? Realmente no puedo suponer que el usuario del control definirá esta plantilla de datos, así que necesito alguna manera de vincularla con el control personalizado.
Trabajado muy bien, gracias :) –
Además de respuesta correcta de Juan, si es necesario utilizar las plantillas en otro lugar que puede traer en los recursos de la plantilla de control fusionaron diccionarios de otro archivo XAML. Esto le permite reutilizar plantillas tanto en generic.xaml como en otras ubicaciones. –