Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# BindingOperations.GetBindingExpression在WPF中返回null_C#_Wpf_Binding - Fatal编程技术网

C# BindingOperations.GetBindingExpression在WPF中返回null

C# BindingOperations.GetBindingExpression在WPF中返回null,c#,wpf,binding,C#,Wpf,Binding,我调整了一个绑定的ViewModel,让我们调用它来继承DependencyObject,并切换了我的一个普通CLR属性,让我们调用它Name,它过去在setter中触发NotifyPropertyChanged(),成为DependencyProperty Name是对文本框的双向绑定,工作正常 但是,调用BindingOperations.GetBindingExpression(实例化的MyViewModel、MyViewModel.NameProperty)始终返回null 1-这是因为

我调整了一个绑定的ViewModel,让我们调用它来继承
DependencyObject
,并切换了我的一个普通CLR属性,让我们调用它
Name
,它过去在setter中触发
NotifyPropertyChanged()
,成为
DependencyProperty

Name
是对
文本框的双向绑定,工作正常

但是,调用
BindingOperations.GetBindingExpression(实例化的MyViewModel、MyViewModel.NameProperty)
始终返回null


1-这是因为无法将my ViewModel(
InstancedMyViewModel
)作为第一个参数(而不是文本框的实例)传入吗?我假设由于它是一个双向绑定,
实例化的myviewmodel
文本框
都应该具备一些绑定知识

2-如果可能的话,我有没有遗漏什么陷阱

它工作得很好,但是当我试着打电话时,你应该使用

  var name = InstantiatedMyViewModel.GetValue(MyViewModel.NameProperty)
BindingOperations.GetBindingExpression
用于绑定到其他对象的控件。e、 g

  <TextBox x:Name="textBox1" Text="{Binding Name}" />

我假设您在
文本框
上用XAML定义了绑定-在这种情况下,文本框是绑定的目标,视图模型是源-始终有一个目标和一个源,
绑定模式。双向
仅意味着值会双向更新。话虽如此,您应该知道只有绑定的目标才有关于绑定表达式的信息

从MSDN开始:

返回与指定表达式关联的BindingExpression对象 在指定对象上绑定目标属性


“我假设由于它是双向绑定,实例化的EdmyViewModel和文本框都应该具有一些绑定知识”。这种假设是错误的。您无法从绑定源获取绑定表达式,只能从目标获取绑定表达式,即使它是双向的。仅供参考,通常首选ViewModels实现INPC接口,而不是从
DependencyObject
继承。
  var bindingExpression = BindingOperations.GetBindingExpression(
     textBox1, TextBox.TextProperty);

  // "Name"
  var path = bindingExpression.ParentBinding.Path;