(最初に、わかりやすいようにサンプルを単純化しました。)
値をインチで表示する編集可能なComboBox が必要です。元の (ソース) 値はピクセル(DIP) 単位の値です。これは、アプリケーションが内部的に動作する単位であるためです。ユーザーには、値がピクセルではなく、インチ (UI の測定単位) で表示されます。コンバーターを使用して、ピクセルからインチに、またはその逆に変換する必要があると判断しました。
ComboBox 項目も "{0} in" でフォーマットする必要があります。
このように表示されるはずです
[ 4 in |v]
[ 1 in ]
[ 2 in ]
[ 3 in ]
[ 4 in ]
ただし、内部的には Pixels で動作するはずです。編集可能であること。作品部分です。私はこれを達成することができませんでした。
私はこれまでのところこれを持っています:
<ComboBox IsEditable="True"
ItemStringFormat="'{}{0} in}'"
Text="{Binding RelativeSource={RelativeSource Self}, Path=SelectedValue, Mode=TwoWay, Converter={StaticResource MyPixelToInchesConverter}, StringFormat='{}{0} in}'}">
<system:Double>1</system:Double>
<system:Double>2</system:Double>
<system:Double>3</system:Double>
</ComboBox>
問題?項目を選択すると、書式設定されません。また、ComboBox の編集可能領域に数値を書き込むと、それも書式設定されません。
では、ユーザーが存在しない値を入力した場合でも ComboBox がアイテムをフォーマットするための最良の方法は何ですか??
ありがとう!