8

私の目標は、これを XAML で記述できるようにすることです。

<Grid>
    <Rectangle Fill="AliceBlue"
            myCore:MyTimePanel.BeginningDate="03/03/2010"
            />
</Grid>

問題 : Silverlight XAML が文字列から DateTime を解析できません。そのため、実行時に XamlParseException 「その文字列から DateTime を作成できません」が発生します。

単純な DependencyProperty を使用する場合、getter/setter に TypeConverterAttribute を追加するだけで機能します。このように(ここからのアイデア):

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

ただし、 DP が接続されている場合、ゲッター/セッターはありません。XAML で文字列の日付を書き込めるようにするにはどうすればよいですか?

ありがとう !

4

1 に答える 1

7

しかし、添付プロパティには Get アクセサーがあります。型コンバーターを Get アクセサーに配置しようとしましたか?

バージョン固有のリンクについては申し訳ありません。関連情報が含まれているリンクです。そのページから:

3. 値の型として機能する型に、型レベルの TypeConverter を属性付けることができます。これにより、型のすべての値の文字列変換が可能になります。詳細については、「TypeConverters と XAML」を参照してください。

4 . Get アクセサー メソッドでプロパティ レベルの TypeConverter を属性指定できます。これにより、添付プロパティの文字列変換が可能になります。TypeConverterAttribute を Set アクセサー メソッドではなく Get アクセサー メソッドに適用するのは直感的ではないように思えるかもしれませんが、XAML プロセッサは、添付プロパティの型変換情報 (存在する場合) を見つけることを期待しています。詳細については、「TypeConverters と XAML」を参照してください。

于 2010-08-27T15:25:11.397 に答える