Подтвердить что ты не робот

В WPF как получить привязку определенного элемента из кода?

Пример этого:

Текстовое поле привязано к некоторым данным. Существует второе текстовое поле, которое не привязывается ни к чему. Поэтому я хочу привязать текстовое поле 2 к тем же данным. 1-й текстбокс связан.

Другими словами, я не знаю, поддерживает ли DependencyObject некоторую ссылку на привязку данных? Если нет, то каков способ узнать все привязки данных к определенному объекту?

4b9b3361

Ответ 1

Попробуйте это

Xaml

<TextBox Name="textBox1" Text="{Binding Text1}"/>
<TextBox Name="textBox2" Text="No Binding"/>

Затем мы можем установить привязку TextProperty для textBox2 к тому же, что и textBox1 с этим кодом за

BindingExpression bindingExpression = textBox1.GetBindingExpression(TextBox.TextProperty);
Binding parentBinding = bindingExpression.ParentBinding;
textBox2.SetBinding(TextBox.TextProperty, parentBinding);

Ответ 2

Вы можете получить привязку любого объекта зависимости, используя

System.Windows.Data.BindingOperations.GetBinding(DependencyObject target,DependencyProperty dp)

затем установите привязку с помощью

System.Windows.FrameworkElement.SetBinding(DependencyProperty dp, string path)

Например:

var binding = BindingOperations.GetBinding(textBox1,TextBox.TextProperty);
textBox2.SetBinding(TextBox.TextProperty, binding);

Ответ 3

Вы можете сделать это в коде, вызвав метод SetBinding.