如何在Silverlight中的附加依赖项属性上设置TypeConverter?

JYL*_*JYL 8 c# silverlight xaml xamlparseexception silverlight-4.0

我的目标是能够在XAML中编写:

<Grid>
    <Rectangle Fill="AliceBlue"
            myCore:MyTimePanel.BeginningDate="03/03/2010"
            />
</Grid>
Run Code Online (Sandbox Code Playgroud)

问题: Silverlight XAML无法从字符串中解析DateTime.所以在运行时我有XamlParseException"无法从该字符串创建DateTime".

当我使用一个简单的DependencyProperty时,我只需在getter/setter上添加一个TypeConverterAttribute即可.像这样(来自这里的想法):

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

但是附加了 DP,没有getter/setter.如何才能在XAML中编写字符串日期?

谢谢 !

Cur*_*ols 7

但附加属性有一个Get访问器 - 您是否尝试将类型转换器放在Get访问器上

对于特定于版本的链接感到抱歉,它是包含相关信息的链接.从该页面:

3.您可以在作为值类型的类型上归属类型级TypeConverter.这样可以对该类型的所有值进行字符串转换.有关更多信息,请参阅TypeConverters和XAML.

4.您可以在Get访问器方法上属性属性级TypeConverter.这样可以对附加属性进行字符串转换.将TypeConverterAttribute应用于Get访问器方法而不是Set访问器方法可能看起来不直观,但这是XAML处理器期望找到附加属性的类型转换信息(如果有)的位置.有关更多信息,请参阅TypeConverters和XAML.