2012-03-06 9 views
3

私はDateTimeフィールドを持つクラスを持っている:Silverlight:DateTimeプロパティからXAMLを設定しますか?

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

私はこの

<TimelineObject Date="3/1/2011"/> 

のようにXAMLで日付を設定しようとすると、私はXAMLParseExceptionを得る:

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

限り私が見ることができるように、文字列の書式は正しい(ShortDatePattern、記載の通りhere)。私は間違って何をしていますか?

答えて

3

DateTime型のTypeConverterを作成して、DateTimeを文字列値に変換し、DateプロパティのTypeConverterAtrributeで指定してみます。 あなたのカスタムTypeConverterでInvariantCultureを使用することをお勧めします。それ以外の場合でも、異なるカルチャ設定を使用する可能性のあるクライアントマシンでは問題が発生します。

+0

ありがとう、それは私が必要とした情報でした。私は 'TypeConverter(typeof(DateTimeTypeConverter))を使用して終わったので、私はカスタムコンバータを書く必要はありませんでした。 – Phasma

+2

DateTimeTypeConverterはSystem.Windows.Controlsにあります。これは次のように使用できます: '[TypeConverter(typeof(DateTimeTypeConverter))] public DateTime MaxDate { get {return(DateTime)GetValue(MaxDateProperty); } セット{SetValue(MaxDateProperty、value); } } ' – Phasma

関連する問題