У меня есть пользовательский тип (SINumber
, который представляет число SI с соответствующими единицами измерения и префиксом). Я могу привязаться к штрафу SINumber
и переопределить SINumber.ToString()
, но то, что отображается, является результатом вызова SINumber.ToString().
Например, SIMeasurement имеет тип SINumber
со значением SI 3099999,9046325684 Ом. Используя следующую привязку, я получаю выход 3,09999990463257 МОм.
<TextBlock Text="{Binding SINMeasurement}"></TextBlock>
Единицы (Ом) и префикс (М = мега) разговор правильный, проблема с количеством отображаемых цифр. Я хочу иметь возможность использовать пользовательский форматтер (реализующий IFormatProvider
ICustomFormatter
?) для интерпретации StringFormat
из привязки и включить мою SI-логику (изменение префикса) для отображения 3,10 МОм. Ниже приведен пример привязки, которую я хотел бы использовать, где точность можно настраивать (в данном случае 0,00), а расположение единиц определяется буквой «U».
<TextBlock Text="{Binding SINMeasurement, StringFormat='{}{0:0.00 U}'}"></TextBlock>
Есть предположения? Я не хочу использовать жестко закодированный SINumber.ToString()
, так как желаемая точность будет различаться в разных местах приложения.
Заранее спасибо.