如果SourceDependencyObject是DependencyObject
,看来我们应该能够从SourceDependencyProperty获取名称并设置为Binding.Path
。
例如:
TextBlock SourceDependencyObject = new TextBlock();
SourceDependencyObject.Text = "Hello";
TextBlock TargetDependencyObject = new TextBlock();
Binding myBinding = new Binding();
myBinding.Source = SourceDependencyObject;
myBinding.Path = new PropertyPath("Text");
BindingOperations.SetBinding(TargetDependencyObject, TextBlock.TextProperty, myBinding);
Debug.WriteLine(TargetDependencyObject.Text);
如果我们不设置路径时,TargetDependencyProperty将指向SourceDependencyObject。
所以如果SourceDependencyObject是string
,int
或其他类型。我们不需要设置Binding.Path。
例如:
TextBlock SourceDependencyObject = new TextBlock();
SourceDependencyObject.Text = "Hello";
TextBlock TargetDependencyObject = new TextBlock();
Binding myBinding = new Binding();
myBinding.Source = SourceDependencyObject.Text;
//myBinding.Path = new PropertyPath("Text");
BindingOperations.SetBinding(TargetDependencyObject, TextBlock.TextProperty, myBinding);
Debug.WriteLine(TargetDependencyObject.Text);
任何更新?我的答案解决了你的问题吗? –