В WPF как получить привязку определенного элемента из кода?
Пример этого:
Текстовое поле привязано к некоторым данным. Существует второе текстовое поле, которое не привязывается ни к чему. Поэтому я хочу привязать текстовое поле 2 к тем же данным. 1-й текстбокс связан.
Другими словами, я не знаю, поддерживает ли DependencyObject некоторую ссылку на привязку данных? Если нет, то каков способ узнать все привязки данных к определенному объекту?
Ответы
Ответ 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
.