2016-10-10 4 views
1

У меня есть TextBox, и я пытаюсь добавить IValueConverter в TextProperty-Binding в коде позади.Как добавить IValueConverter в существующее привязку

 var bindingExpression = TextBox.GetBindingExpression(TextBox.TextProperty); 
     if (bindingExpression != null && bindingExpression.ParentBinding.Converter == null) 
     { 
      bindingExpression.ParentBinding.Converter = new MyConverter(); 
     } 

На этом этапе следующее исключение кидает: Binding не может быть изменен после того, как она была использована. Как я могу получить доступ к привязке ранее, чтобы изменить свойство?

+0

Есть ли у вас проверка ответа – AnjumSKhan

ответ

0
  1. Создайте новый Binding и примените его. Вы можете получить различные свойства из старого экземпляра Binding.

    или

  2. Использование Trigger применять условное Binding, одна с другой и без IValueConverter.

+0

Как работает второе решение? Можете ли вы привести пример? Создание нового связывания не так уж и элегантно. –

+0

@ Mi.Sharp Все элегантно, если ситуация требует. – AnjumSKhan

Смежные вопросы