WPF TargetNullValue, возвращающий значение, когда для привязки текстового поля установлено значение OneWayToSource - PullRequest
5 голосов
/ 01 марта 2011

У меня есть это текстовое поле xaml

<TextBox Text="{Binding ProdFilter.Min, Mode=OneWayToSource,
   UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}"
   Width="50" DockPanel.Dock="Right" TabIndex="3" />

привязано к этому свойству:

        public double? Min
        {
            get { return min; }
            set
            {
                if (value == null)
                    value = 0;
                min = value;
                OnPropertyChanged("Min");
            }
        }

Проблема, с которой я столкнулся, заключается в том, что при запуске программы или когда пользователь очищает текст, текст текстового поля устанавливается на «0». Я не знаю, правильно ли это поведение, потому что я использую OneWayToSource, но мне бы хотелось, чтобы для моего свойства было установлено значение null, когда текст пустой (а текст остается пустым!)

Есть идеи? Спасибо!

1 Ответ

6 голосов
/ 01 марта 2011

Это потому, что WPF перечитывает значение из свойства после его установки, даже если привязка равна OneWayToSource.Пожалуйста, посмотрите ответ на этот вопрос для возможного обходного пути.

...