Как программно добавить привязку WPF между объектами DependencyProperty в 2 отдельных окнах

Проблема, с которой я сталкиваюсь, вероятно, очень проста для решения, но с точки зрения новичка она кажется сложной.

Я создал 2 видимых окна одновременно, одно с ListBox, другое с TextBox. Я хотел бы программно привязать свойство window1.ListBox.SelectedValue к свойству window2.TextBox.Text. Я не использую преобразователи значений.

Код прост:

      var binding = new Binding("SelectedValue");
      binding.Source = window1.ListBox;
//      binding.Path = new PropertyPath(ListBox.SelectedValueProperty);
      var bound = window2.TextBox.SetBinding(TextBlock.TextProperty, binding);

Я хотел бы выполнить привязку с использованием экземпляра DependencyProperty вместо имени свойства по соображениям производительности, но я также пытался выполнить привязку по имени. Привязка просто не работает.

Вы можете скачать фиктивный проект VS2010 здесь.

Это приводит к другому вопросу — как отладить привязку, на какое событие (если есть) подписаться, чтобы обнаружить изменения привязки?


person too    schedule 07.06.2012    source источник
comment
Ваши два окна созданы отдельно в вашем App.xaml.cs? или одно окно открывает другое окно (т.е. является ли одно окно родительским окном другого)?   -  person WPF-it    schedule 07.06.2012
comment
window1 создается как главное окно, window2 создается при первой активации AppActivate.   -  person too    schedule 07.06.2012


Ответы (1)


Проблема решена. Я по ошибке вызвал SetBinding с TextBlock.TextProperty, хотя это должно быть TextBox.TextProperty.

person too    schedule 07.06.2012