コードビハインドを使用せずに、日付を含む文字列を再フォーマットする必要があります。文字列の形式は YY/MM/DD ですが、MM/DD/YYYY である必要があります。Date オブジェクトを指定してこれが行われるのを見てきましたが、文字列であるため制限があります。
これまでのところ、これを行うにはコード ビハインドが必要なようですが、現時点ではベンダーからサポートされていません。
XAML のみの文字列の書式設定について質問されたため、XAML で を指定する方法は次のStringFormat
とおりです。
単純:
StringFormat=d
ロングハンド: (エスケープ中かっこに注意してください)
StringFormat='\{0:d\}'
カスタム: (テキストを追加)
StringFormat='The date is \{0:d\}'
TextBox
を使用した全体StringFormat
:
<TextBox Text="{Binding myProperty, StringFormat='The date is \{0:d\}'}"
構文は String.Format と同じです。でも:
そうは言っても、あなたがやろうとしているのは、単に日付をフォーマットすることではなく、文字列を として解析しDateTime
、それを文字列としてフォーマットしようとしているということDateTime
です。これら 2 つの手順のうち、XAML で実行できるのは後者だけです。悲しい時代ですが、結局のところ、XAML はマークアップのためのものであり、計算のためのものではありません。
明るい面としては、プロジェクト内の別のアセンブリを参照できる場合は、 を実装できますIValueConverter
。これにより、入力文字列を に変換できるようになりDateTime
、XAML の StringFormat が機能します。または、IValueConverter
指定した形式で日付をエクスポートすることもできます。
Binding で StringFormat プロパティを使用して、バインドされたデータをフォーマットできます。XAML に String がある場合は、それを静的ソースとして TextBlock の Text プロパティにバインドし、StringFormat を介して再フォーマットできます。詳細については、この投稿を参照してください。