Код первый:
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
...
<xctk:SingleUpDown Value="{Binding floatvalue}" FormatString="F7" Minimum="0"/>
...
floatvalue является свойством float Тип.
Если пользователь вводит "8.76543212" в SingleUpDown и затем оставить фокус ( Нажмите Tab ), значение изменится на 8.7654320 (часто) или 8.7654300 (редко).
Но если прокомментировать {Binding}out,
<xctk:SingleUpDown Value="0.1234567" FormatString="F7" Minimum="0"/>
Все работает хорошо.
В заключение есть два требования для воспроизведения этой проблемы: 1. Привязать значение к свойству;2. Измените фокус после изменения.
Я добавил настроенный конвертер для захвата значения до и после изменения, без помощи.
Я также попытался покопаться в исходном коде NumericUpDown , но я не могу найти полезную информацию.
Код C # прост:
public float floatvalue { get; set; }
Последние цифры NumericUpDown должны отображаться точно.