Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式在两个单独窗口上的DependencyProperty对象之间添加WPF绑定_C#_Wpf_Binding_Dependency Properties - Fatal编程技术网

C# 如何以编程方式在两个单独窗口上的DependencyProperty对象之间添加WPF绑定

C# 如何以编程方式在两个单独窗口上的DependencyProperty对象之间添加WPF绑定,c#,wpf,binding,dependency-properties,C#,Wpf,Binding,Dependency Properties,我遇到的问题可能很容易解决,但从初学者的角度来看似乎很棘手 我创建了两个同时可见的窗口,一个上面有ListBox,另一个上面有TextBox。我想以编程方式将window1.ListBox.SelectedValue绑定到window2.TextBox.Text属性。我没有使用值转换器 代码很简单: var binding = new Binding("SelectedValue"); binding.Source = window1.ListBox; // b

我遇到的问题可能很容易解决,但从初学者的角度来看似乎很棘手

我创建了两个同时可见的窗口,一个上面有ListBox,另一个上面有TextBox。我想以编程方式将window1.ListBox.SelectedValue绑定到window2.TextBox.Text属性。我没有使用值转换器

代码很简单:

      var binding = new Binding("SelectedValue");
      binding.Source = window1.ListBox;
//      binding.Path = new PropertyPath(ListBox.SelectedValueProperty);
      var bound = window2.TextBox.SetBinding(TextBlock.TextProperty, binding);
出于性能原因,我想使用DependencyProperty实例而不是属性名进行绑定,但我也尝试了按名称绑定。绑定就是不起作用

您可以下载虚拟VS2010项目


这引出了另一个问题-如何调试绑定,订阅哪个事件(如果有的话)来检测绑定更改?

问题已解决-我错误地将TextBlock.TextProperty称为SetBinding,而它应该是TextBox.TextProperty。

您的两个窗口是在App.xaml.cs中分别创建的吗?还是一个窗口打开另一个窗口(即一个窗口是另一个窗口的父窗口)?window1创建为主窗口,window2在第一个AppActivate上创建。