У меня есть WPF TextBox
, у которого есть текстовое значение, связанное в XAML. Это работает нормально и, как и ожидалось, когда связанное значение загружается в поле, оно отформатируется по желанию.Как я могу изменить (т. Е. Переключить) свойство bound, StringFormat элемента управления WPF?
Моя проблема заключается в том, когда пользователь вводит текстовое поле для изменения значения, я хочу отменить форматирование и отобразить исходное базовое значение.
Для этого я попытался установить свойство BindingExpression.ParentBinding.StringFormat
, в текстовом поле привязки из-за события GotFocus
. Однако, когда я попытался установить свойство StringFormat
в пустую строку, я получил следующее исключение:
Binding не может быть изменен после того, как она была использована.
Таким образом, после того, как контроль был привязан к объекту модели данных, есть прямой способ, что я могу изменить формат строкового TextBox
? Я хочу изменить способ форматирования значения элемента управления, но конечное желание состоит в том, чтобы разбить форматирование данных при его редактировании и повторно установить форматирование строки после выхода пользователя из поля.
недавно я сделал подобный предмет. См. Ссылку. http://stackoverflow.com/questions/28643298/wpf-custom-textbox-with-decimal-formatting/28661951#28661951 –
Lol, спасибо @Ganesh. Это именно то, что мне нужно. Если я не смогу найти способ сделать это без создания нового элемента управления, я воспользуюсь вашей реализацией (и дайте Райану ответный знак, так как это его предложение). Однако я мог бы найти способ сделать это с помощью стили и триггеры ... Мне нужно будет поэкспериментировать и обновить этот вопрос. – RLH