web-dev-qa-db-ja.com

TextBlockのWPF形式のDateTime?

TextBlockプロパティにバインドされているDateTimeがあります。日付の形式を設定するにはどうすればよいですか?

59
Peter

バインディングを宣言するときに使用できる文字列形式のプロパティがあります。

<TextBox Text="{Binding Path=DateTimeValue, StringFormat=dd-MM-yyyy}" />

(このプロパティが存在するには.NET 3.5 SP1である必要があります)

119
Martin Harris

バインディング間で共通フォーマット文字列を使用する場合、次のようにバインディングを宣言できます。

<Textbox Text={Binding Path=DateTimeValue, StringFormat={x:Static local:Constants.DateTimeUiFormat}} />

このような定数クラスでは:

public static class Constants
{
    public const string DateTimeUiFormat = "dd/MM/yyyy";

    //etc...
}
29
Brian Hinchey

誰かに役立つかもしれません:

<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now},
           StringFormat='{}{0: Today is dddd, MMMM dd, yyyy, hh:mm:ss}'}"/>

または24時間2桁の月と年の形式:

<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now},
           StringFormat='{}{0: Today is dddd, MM.dd.yy, HH:mm:ss}'}"/>
19
ZloyMakak