Установка DataContext с SelectedItem программно - PullRequest
4 голосов
/ 30 октября 2008

Как программно установить DataContext, который указывает выбранный элемент списка?

Проще говоря, как вы воспроизводите этот тип привязки в коде?

<StackPanel>
    <ListBox Name="listBox1" />
    <TextBox Name="textBox1" DataContext="{Binding ElementName=listBox1, Path=SelectedItem}" />
</StackPanel>

Ответы [ 2 ]

7 голосов
/ 30 октября 2008

Вам необходимо установить имя для текстового поля, чтобы вы могли обращаться к нему в коде. Тогда вы просто сможете назначить объект свойству DataContext. Вы можете создать привязку данных программно следующим образом:

Binding binding = new Binding();
binding.ElementName = "listBox1";
binding.Path = new PropertyPath("SelectedItem");
binding.Mode = BindingMode.OneWay;
txtMyTextBox.SetBinding(TextBox.TextProperty, binding);
1 голос
/ 30 октября 2008

Ух ты, иногда тебе просто нужно задать вопрос, чтобы получить дополнительный толчок в правильном направлении, да?

Этот код работает для меня:

Binding b = new Binding();
b.Path = new PropertyPath(ListBox.SelectedItemProperty);
b.Source = listBox1;
textBox1.SetBinding(TextBox.DataContextProperty, b);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...