2010-08-27 15 views
5

Mi objetivo es ser capaz de escribir esto en XAML:¿Cómo configurar un TypeConverter en una propiedad de dependencia adjunta en Silverlight?

<Grid> 
    <Rectangle Fill="AliceBlue" 
      myCore:MyTimePanel.BeginningDate="03/03/2010" 
      /> 
</Grid> 

Problema: Silverlight XAML No se puede analizar un DateTime de una cadena. Entonces, en tiempo de ejecución, tengo XamlParseException "no puedo crear un DateTime a partir de esa cadena".

Cuando uso una DependencyProperty simple, simplemente agrego un TypeConverterAttribute en el getter/setter y funciona. Como esto (idea de here):

[TypeConverter(typeof(DateTimeTypeConverter))] 
public DateTime MyDate 
{ 
    get { return (DateTime)GetValue(MyDateProperty); } 
    set { SetValue(MyDateProperty, value); } 
} 

Pero con un adjunta DP, no hay captador/definidor. ¿Qué puedo hacer para poder escribir la fecha de la cadena en XAML?

Gracias!

Respuesta

5

Pero las propiedades adjuntas tienen un descriptor de acceso Get - ha intentado putting the type converter on the Get accessor?

Disculpa el enlace específico de la versión, es el que contiene la información pertinente. Desde esa página:

3. Puede atribuir un TypeConverter de tipo de tipo en el tipo que sirve como tipo de valor. Esto permite la conversión de cadenas de todos los valores del tipo. Para obtener más información, vea TypeConverters y XAML.

4. Puede atribuir un TypeConverter de nivel de propiedad en el método Get accessor. Esto permite la conversión de cadenas de la propiedad adjunta. Aplicar TypeConverterAttribute al método Get accessor en lugar del método Set accessor puede parecer poco intuitivo, pero es ahí donde los procesadores XAML esperan encontrar la información de conversión de tipo (si corresponde) para una propiedad adjunta. Para obtener más información, vea TypeConverters y XAML.

+0

Tienes toda la razón, gracias! Estaba centrado en la propiedad CLR (MyProp {get; set;}), pero en el caso del DP adjunto, los accesos son métodos estáticos en lugar de propiedad. – JYL

Cuestiones relacionadas