2015-04-24 2 views
0

Простейший пример, который я мог думать только о следующем:TwoWay связывания не обновляет средства управления

TextBox tb1 = new TextBox(); 
TextBox tb2 = new TextBox(); 

this.Content = new StackPanel() { Children = { tb1, tb2 } }; 

Binding binding = new Binding("Text") { 
    Mode = BindingMode.TwoWay, 
    Source = tb1, 
    UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged 
}; 

tb2.SetBinding(TextBlock.TextProperty, binding); 

Когда я начинаю мое заявление я ожидаю Textboxes обновить свой текст, как только изменения текста другого TextBox в. Но ни текстовое поле источника, ни целевое текстовое поле не обновляют его текст при смене другого текстового поля. Есть ли причина для этого странного поведения и может быть обходной путь?

(По определенным причинам я не могу использовать XAML, где переплеты всегда работал для меня)


Update: При изменении текста одного из текстовых полей в первый раз, говорит выходное окно Поток 0x #### вышел с кодом 259 (0x103).

ответ

1

Вы используете неправильный код DependencyProperty.

tb2.SetBinding(**TextBlock**.TextProperty, binding); 

скопированный код работает, как ожидалось при использовании TextBox.TextProperty

+0

Ok. Это смущает ... Спасибо :) – Cubinator73

+0

Мы все делаем это между этими двумя, я в этом уверен. – bdimag

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