C# 以编程方式绑定不会';在运行时添加控件时无法工作
我有两个文本框,我想在运行时绑定它们的可见性属性 当我通过Xaml添加文本框时,绑定会起作用,但当我以编程方式添加文本框时,绑定不会起作用 任何帮助C# 以编程方式绑定不会';在运行时添加控件时无法工作,c#,wpf,binding,C#,Wpf,Binding,我有两个文本框,我想在运行时绑定它们的可见性属性 当我通过Xaml添加文本框时,绑定会起作用,但当我以编程方式添加文本框时,绑定不会起作用 任何帮助 public partial class Window1 : Window { TextBox txt1 = new TextBox(); TextBox txt2 = new TextBox(); public Window1() { Init
public partial class Window1 : Window
{
TextBox txt1 = new TextBox();
TextBox txt2 = new TextBox();
public Window1()
{
InitializeComponent();
txt1.Name = "txt1";
txt1.Margin= new Thickness(30,0,128,0);
txt1.VerticalAlignment = VerticalAlignment.Top;
txt2.Name = "txt2";
txt2.Margin = new Thickness(30, 32, 128, 0);
txt2.VerticalAlignment = VerticalAlignment.Top;
Binding binding = new Binding();
binding.ElementName = "txt1";
binding.Path = new PropertyPath(TextBox.VisibilityProperty);
BindingOperations.SetBinding(txt2, TextBox.VisibilityProperty, binding);
grid.Children.Add(txt1);
grid.Children.Add(txt2);
}
}
提前感谢更新 不要设置
ElementName
属性,只需将Binding
的Source
属性设置为要绑定到的元素对象即可
TextBox txt1 = new TextBox();
TextBox txt2 = new TextBox();
public Window1()
{
InitializeComponent();
txt1.Name = "txt1";
txt1.Margin = new Thickness(30, 0, 128, 0);
txt1.VerticalAlignment = VerticalAlignment.Top;
txt1.Visibility = Visibility.Visible;
txt2.Name = "txt2";
txt2.Margin = new Thickness(30, 32, 128, 0);
txt2.VerticalAlignment = VerticalAlignment.Top;
Binding binding = new Binding();
binding.Source = txt1; // set the source object instead of ElementName
binding.Path = new PropertyPath(TextBox.VisibilityProperty);
BindingOperations.SetBinding(txt2, TextBox.VisibilityProperty, binding);
grid.Children.Add(txt1);
grid.Children.Add(txt2);
}