c# – 在运行时添加控件时,以编程方式绑定不起作用
发布时间:2020-12-16 01:37:45 所属栏目:百科 来源:网络整理
导读:我有两个TextBox,我想在运行时绑定它们的Visibility属性, 我通过Xaml添加TextBoxes时绑定工作,但是当我以编程方式添加它们时不起作用, 任何帮助!! public partial class Window1 : Window { TextBox txt1 = new TextBox(); TextBox txt2 = new TextBox(); pu
我有两个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,128,0); txt1.VerticalAlignment = VerticalAlignment.Top; txt2.Name = "txt2"; txt2.Margin = new Thickness(30,32,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属性设置为要绑定到的Element对象. TextBox txt1 = new TextBox(); TextBox txt2 = new TextBox(); public Window1() { InitializeComponent(); txt1.Name = "txt1"; txt1.Margin = new Thickness(30,0); txt1.VerticalAlignment = VerticalAlignment.Top; txt1.Visibility = Visibility.Visible; txt2.Name = "txt2"; txt2.Margin = new Thickness(30,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,binding); grid.Children.Add(txt1); grid.Children.Add(txt2); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |