2010-12-31 2 views
2

Я видел этот пост: How to Conditionally Format a String in .Net?Условный FormatString или String.Format

Первая часть точек вопроса на возможность использования условных форматов. Как это делается?

В моем случае я хочу сделать, например, 100 000 долларов за 100 000 долларов США и 1 000 000 долларов США за 1 миллион долларов. Я хочу иметь возможность сделать это с помощью только FormatString в разметке (Silverlight). Это случай, когда я не могу использовать конвертер значений (он находится внутри стиля).

Возможно ли это?

+0

Вам нужно закодировать его самостоятельно. Проверьте: http://stackoverflow.com/questions/2134161/format-number-like-stackoverflow-rounded-to-thousands-with-k-suffix –

+0

Что это касается в этой должности, с которой я связан? Int32 i = 0; i.ToString ("$ #, ## 0.00; ($ #, ## 0,00); Zero"); – Roger

ответ

4

Вы можете ввести свой собственный IFormatProvider и задать команду. пользовательский и передать это при вызове String.Format() или ToString().

Пример этого можно найти здесь http://msdn.microsoft.com/en-us/library/system.iformatprovider.aspx или здесь http://www.codeproject.com/KB/cs/custstrformat.aspx.

public class StringFormatInfo : IFormatProvider, ICustomFormatter 
{ 
    ... 
} 

return number.ToString("{0:custom}", new StringFormatInfo()); 
+0

+1. Очень приятно найти! – David

+0

Я использовал его сам ... его чистый хороший api вместо использования всех видов вспомогательных методов. –

+0

Я не думаю, что это вариант для меня, потому что я использую привязку к шаблону. Мне нужно это внутри стиля, который применяется к метке на оси диаграммы (Silverlight Toolkit). Я попробую. – Roger

Смежные вопросы