カスタムタイプ ( SINumber
、適切な単位とプレフィックスを持つ SI 番号を表す) があります。SINumber
fine と overrideにバインドできますSINumber.ToString()
が、表示されるのは SINumber.ToString() を呼び出した結果です。
たとえば、SIMeasurement はSINumber
、SI 値が 3099999.9046325684 Ω のタイプです。次のバインディングを使用すると、3.09999990463257 MΩ の出力が得られます。
<TextBlock Text="{Binding SINMeasurement}"></TextBlock>
単位 (Ω) と接頭辞 (M = メガ) の会話は正しいですが、問題は表示される数字の数にあります。IFormatProvider
ICustomFormatter
カスタム フォーマッタ (実装?) を使用して Binding を解釈しStringFormat
、SI ロジック (プレフィックスを変更) を組み込んで3.10 MΩを表示できるようにしたいと考えています。以下は、私が使用したい Binding の例です。精度はカスタマイズ可能 (この場合は 0.00) で、単位の位置は「U」によって決定されます。
<TextBlock Text="{Binding SINMeasurement, StringFormat='{}{0:0.00 U}'}"></TextBlock>
何かご意見は?SINumber.ToString()
必要な精度はアプリケーション内の場所によって異なるため、ハードコードされた を使用したくありません。
前もって感謝します。