0

コードビハインドを使用せずに、日付を含む文字列を再フォーマットする必要があります。文字列の形式は YY/MM/DD ですが、MM/DD/YYYY である必要があります。Date オブジェクトを指定してこれが行われるのを見てきましたが、文字列であるため制限があります。

これまでのところ、これを行うにはコード ビハインドが必要なようですが、現時点ではベンダーからサポートされていません。

4

2 に答える 2

0

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 と同じです。でも:

  • 使用できるパラメーターは 1 つだけです
  • バックスラッシュで中括弧をエスケープする必要があります
  • フォーマット文字列以外を指定したい場合は、式全体を一重引用符で囲む必要があります

そうは言っても、あなたがやろうとしているのは、単に日付をフォーマットすることではなく、文字列を として解析しDateTime、それを文字列としてフォーマットしようとしているということDateTimeです。これら 2 つの手順のうち、XAML で実行できるのは後者だけです。悲しい時代ですが、結局のところ、XAML はマークアップのためのものであり、計算のためのものではありません。

明るい面としては、プロジェクト内の別のアセンブリを参照できる場合は、 を実装できますIValueConverter。これにより、入力文字列を に変換できるようになりDateTime、XAML の StringFormat が機能します。または、IValueConverter指定した形式で日付をエクスポートすることもできます。

于 2012-06-18T20:18:55.507 に答える
0

Binding で StringFormat プロパティを使用して、バインドされたデータをフォーマットできます。XAML に String がある場合は、それを静的ソースとして TextBlock の Text プロパティにバインドし、StringFormat を介して再フォーマットできます。詳細については、この投稿を参照してください。

于 2012-06-18T19:37:29.173 に答える