2012-03-06 54 views
3

我有一個DateTime字段類:Silverlight:通過XAML設置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'. 

據正如我所看到的,字符串的格式是正確的(ShortDatePattern,如描述here)。我究竟做錯了什麼?

回答

3

嘗試爲DateTime類型創建TypeConverter,該類型將DateTime轉換爲/從字符串值轉換爲TypeConverterAtrribute並將其指定爲Date屬性。 要小心,最好在自定義TypeConverter中使用InvariantCulture。在其他情況下,您可能會在可能使用不同文化設置的客戶端計算機上遇到問題。

+0

謝謝,那正是我需要的信息。我最終使用了TypeConverter(typeof(DateTimeTypeConverter))',所以我不需要編寫自定義轉換器。 – Phasma 2012-03-08 08:35:25

+2

DateTimeTypeConverter在System.Windows.Controls中。它可以像這樣使用:'[TypeConverter(typeof(DateTimeTypeConverter))] public DateTime MaxDate { get {return(DateTime)GetValue(MaxDateProperty); } Set {SetValue(MaxDateProperty,value);} set {SetValue(MaxDateProperty,value);} ' }' – Phasma 2012-03-08 08:42:41