我的目标是能够在XAML中写下这个:
<Grid>
<Rectangle Fill="AliceBlue"
myCore:MyTimePanel.BeginningDate="03/03/2010"
/>
</Grid>
问题: Silverlight XAML无法从字符串中解析DateTime。所以在运行时我有XamlParseException“无法从该字符串创建DateTime”。
当我使用简单的DependencyProperty时,我只需在getter / setter上添加一个TypeConverterAttribute即可。像这样(来自here的想法):
[TypeConverter(typeof(DateTimeTypeConverter))]
public DateTime MyDate
{
get { return (DateTime)GetValue(MyDateProperty); }
set { SetValue(MyDateProperty, value); }
}
但是如果使用附加 DP,则没有getter / setter。如何才能在XAML中编写字符串日期?
谢谢!
答案 0 :(得分:7)
但附加属性有一个Get访问者 - 您尝试过putting the type converter on the Get accessor吗?
对于特定于版本的链接感到抱歉,它是包含相关信息的链接。从该页面:
3。您可以在作为值类型的类型上归属类型级TypeConverter。这样可以对该类型的所有值进行字符串转换。有关更多信息,请参阅TypeConverters和XAML。
4。您可以在Get访问器方法上属性属性级TypeConverter。这样可以对附加属性进行字符串转换。将TypeConverterAttribute应用于Get访问器方法而不是Set访问器方法可能看起来不直观,但这是XAML处理器期望找到附加属性的类型转换信息(如果有)的位置。有关更多信息,请参阅TypeConverters和XAML。