Когда вы форматируете TextBox как валюту и щелкаете для его редактирования, $ и запятые не вызывают проблем, вы можете просто редактировать и вкладывать без проблем. Когда вы форматируете поле в процентах, вещи работают не так хорошо.
<TextBox Text="{Binding CostMarkup,
StringFormat=P}"
Style="{StaticResource ctrlSpacingTight}" />
Если базовое значение равно 0,1, оно правильно отображается как 10%, если вы перейдете к редактированию, оно по-прежнему показывает, что 10%% вызовет проблему, плюс оно изменит базовое значение с 0,1 до 10. Я написал конвертер чтобы справиться со всем этим, но мне интересно, если нет лучшего способа. В частности, есть ли способ справиться с этим так, как это делает валюта?
Существует встроенный конвертер валют, поэтому я подозреваю, что в версии StringFormat для валют это используется. Хотя есть ZoomPerentageConverter, он не делает то, что я ожидал. Есть ли способ подключиться к StringFormat = P и заставить его вызывать мой конвертер вместо того, чтобы идти к каждому экземпляру и явно указывать его?
<TextBox Text="{Binding CostMarkup,
StringFormat=P,
Converter={StaticResource pctConverter}}"
Style="{StaticResource ctrlSpacingTight}" />