Как программно установить DataContext, который указывает выбранный элемент списка?
Проще говоря, как воспроизвести этот тип привязки в коде?
<StackPanel>
<ListBox Name = "listBox1" />
<TextBox Name = "textBox1" DataContext = "{Binding ElementName=listBox1, Path=SelectedItem}" />
</StackPanel>





Вам необходимо установить имя для текстового поля, чтобы вы могли ссылаться на него в коде. Тогда вы должны просто иметь возможность назначить объект свойству DataContext. Вы можете создать привязку данных программно следующим образом:
Binding binding = new Binding();
binding.ElementName = "listBox1";
binding.Path = new PropertyPath("SelectedItem");
binding.Mode = BindingMode.OneWay;
txtMyTextBox.SetBinding(TextBox.TextProperty, binding);
Нет проблем ... пару правок позже, чтобы получить правильный синтаксис ... хех.
Вау, иногда вам просто нужно сформулировать вопрос, чтобы получить дополнительный толчок в правильном направлении, а?
Этот код работает для меня:
Binding b = new Binding();
b.Path = new PropertyPath(ListBox.SelectedItemProperty);
b.Source = listBox1;
textBox1.SetBinding(TextBox.DataContextProperty, b);
Ах, спасибо. Я только что разобрался сам, но проголосуйте за быстрый ответ! :)