Silverlight:如何通过XAML设置DateTime属性?

3

我有一个包含DateTime字段的类:

public class TimelineObject : FrameworkElement
    {
        private DateTime date;
        public DateTime Date
        {
            get { return date; }
            set { date = value; }
        }
    }

当我尝试在XAML中设置日期时,可以像这样:
<TimelineObject Date="3/1/2011"/>

我遇到了一个XAMLParseException异常:

Failed to create a 'System.DateTime' from the text '3/1/2011'. 

据我所见,字符串的格式是正确的(短日期模式,如此处所述)。我做错了什么?
1个回答

3

尝试创建 DateTime 类型的 TypeConverter,将 DateTime 转换为/从字符串值转换,并使用 TypeConverterAtrribute 指定您的 Date 属性。请注意,最好在自定义 TypeConverter 中使用 InvariantCulture。否则,在客户端计算机上可能会出现不同的区域设置,仍然会有问题。


谢谢,这正是我需要的信息。最终我使用了 TypeConverter(typeof(DateTimeTypeConverter)),因此不需要编写自定义转换器。 - Phasma
2
DateTimeTypeConverter位于System.Windows.Controls中。它可以像这样使用: [TypeConverter(typeof(DateTimeTypeConverter))] public DateTime MaxDate { get { return (DateTime)GetValue(MaxDateProperty); } set { SetValue(MaxDateProperty, value); } } - Phasma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接