Привязка текстового поля WPF с форматированием

Я только что обновил наше приложение wpf с 3.5sp1 до 4.0.

Приведенный ниже код мы используем для привязки текстового поля к базовой модели представления. Текстовое поле можно редактировать.

    

В 3.5sp1 форматирование будет происходить только изначально. Поэтому, когда текстовое поле было загружено и привязано к значению 4000, форматирование изменит его на 4000. Если пользователь редактировал это значение, форматирование не происходило.

В 4.0 форматирование происходит по мере изменения значения (т. Е. Пока пользователь вводит новое значение). Хотя в теории это звучит нормально, на самом деле это катастрофа. Курсор повсюду. Его нельзя использовать.

Теперь, мы могли бы изменить UpdateSourceTrigger на «LostFocus», но это создает новые проблемы с данными, не проверяемыми в определенных сценариях.

Есть ли способ вернуть прежнее поведение 3.5sp1?

Обновление 1

Использование Converter по-прежнему вызывает такое же поведение:

public class DecimalConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value != null)
            return ((decimal)value).ToString("#,##0;(#,##0)");

        return string.Empty;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

и измененный XAML:


Обновление 2

Подобно этой статье подключения .

10
задан ozczecho 6 January 2011 в 00:40
поделиться