我有一个自定义类型(SINumber
,它表示具有适当单位和前缀的 SI 编号)。我可以绑定到SINumber
罚款和覆盖SINumber.ToString()
,但显示的是调用 SINumber.ToString() 的结果。
例如,SIMeasurement 是SINumber
SI 值为 3099999.9046325684 Ω 的类型。使用以下绑定,我得到 3.09999990463257 MΩ 的输出。
<TextBlock Text="{Binding SINMeasurement}"></TextBlock>
单位 (Ω) 和前缀 (M = mega) 对话是正确的,问题在于显示的数字数量。我希望能够使用自定义格式化程序(实现IFormatProvider
ICustomFormatter
?)来解释StringFormat
Binding,并合并我的 SI 逻辑(更改前缀)以显示3.10 MΩ。下面是我想使用的绑定示例,其中精度是可定制的(在本例中为 0.00),并且单位的位置由“U”确定。
<TextBlock Text="{Binding SINMeasurement, StringFormat='{}{0:0.00 U}'}"></TextBlock>
有什么想法吗?我不想使用硬编码SINumber.ToString()
,因为所需的精度会在应用程序中的不同位置有所不同。
提前致谢。