シンプルな WPF アプリをグローバル化しようとしています。SOに関するいくつかの質問および/または回答で、バインディングに関する次の2つの設定のいずれかが表示されます。
StringFormat=C
StringFormat='{}{0:C}'
これらの違いは何ですか?どちらか一方を使用する特定の条件はありますか?
シンプルな WPF アプリをグローバル化しようとしています。SOに関するいくつかの質問および/または回答で、バインディングに関する次の2つの設定のいずれかが表示されます。
StringFormat=C
StringFormat='{}{0:C}'
これらの違いは何ですか?どちらか一方を使用する特定の条件はありますか?
私の理解では、違いはなく、一方は省略形で、もう一方は明示的です。明示的であることが有益であると私が考えることができる唯一の条件は、フォーマットをより細かく制御したい場合です。例えば:
StringFormat=Total: {0:C}
それ以外は、シンプルにしてください。XAML はすでに冗長であり、省略構文は大歓迎です。
文字列のフォーマットを読んでみませんか?
http://msdn.microsoft.com/en-us/library/dd465121.aspx
値を入力するフォーマット文字列で {0:C} を使用できます。
decimal value = 123.456;
Console.WriteLine("Your account balance is {0:C2}.", value);
一方、C を単純な形式として使用します。
Console.WriteLine(("Your account balance is " + decimal.Parse("24.3200").ToString("C"));
出力に関する限り、それらは機能的に同等です。これは、データの使用方法のコンテキストに基づいてデータをフォーマットする別の方法です。
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#CFormatString