我试图通过属性设置绑定,但是我找不到方法。 这有效:
Binding bind = new Binding();
//Some code
var tb = Control as TextBlock;
tb.SetBinding(TextBlock.TextProperty, bind );
我想工作的与此类似:
public FrameworkElement Control {get;set;}
public string dp {get;set;}
public string TypeOfControl {get;set;}
var tb = Control as typeof(TypeOfControl);
tb.SetBinding(typeof(TypeOfControl).dp, bind );
我已经尝试遵循以下步骤: DependencyProperty from string
var descriptor = DependencyPropertyDescriptor.FromName(dp,typeof(TextBlock), typeof(Control));
descriptor.SetValue(Control, bind);
但是我从描述符中得到了空值。
答案 0 :(得分:0)
这似乎可行:
Type type = Control.GetType();
var descriptor = DependencyPropertyDescriptor.FromName(DependencyPropertyName, type, type);
var dp = descriptor.DependencyProperty;
Control.SetBinding(dp, Bind);
在我的案例中,DependencyPropertyName(使用TextBlock测试)为“文本”。我认为它必须是“ TextProperty”。 这就是为什么描述符始终为空的原因。