Связывание данных WPF с StringFormat, когда UpdateSourceTrigger имеет значение PropertyChanged

Я хочу, чтобы текстовое поле добавляло определенную строку после того, как пользователь выходит из элемента управления, то есть LostFocus, однако я предпочитаю, чтобы текстовое поле проверялось по типу пользователя, поэтому для UpdateSourceTrigger установлено значение PropertyChanged.

Есть ли способ заставить это работать в WPF?

Посмотрел на этот вопрос, который похож, но интересно, есть ли более чистое решение?

Мой XAML:

    <TextBox Text="{Binding Path=MyBindingPath, 
                            StringFormat='\{0} -HELLO',
                            TargetNullValue={x:Static sys:String.Empty},
                            ValidatesOnDataErrors=True,   
                            NotifyOnValidationError=True,    
                            UpdateSourceTrigger=PropertyChanged}"/>

person cjroebuck    schedule 23.12.2009    source источник


Ответы (1)


Вы можете установить для UpdateSourceTrigger значение Explicit, а в обработчике событий TextChanged TextBox вы можете явно вызвать UpdateSource после выполнения желаемых действий.

//write the code you want to run first and then the following code
BindingExpression exp = this.textBox1.GetBindingExpression(TextBox.TextProperty);
exp.UpdateSource();
person viky    schedule 23.12.2009