[英]Binding programmatically doesn't work when I add the controls in run-time
我有兩個TextBox,我想在運行時綁定它們的Visibility屬性,
我通過Xaml添加TextBoxes時綁定工作,但是當我以編程方式添加它們時不起作用,
任何幫助!!
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
屬性設置為要Binding
到的Element對象。
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.