设置与未知对象的绑定

时间:2019-06-07 11:50:11

标签: c# binding dependency-properties system.reflection

我试图通过属性设置绑定,但是我找不到方法。 这有效:

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);

但是我从描述符中得到了空值。

1 个答案:

答案 0 :(得分:0)

这似乎可行:

        Type type = Control.GetType();
        var descriptor = DependencyPropertyDescriptor.FromName(DependencyPropertyName, type, type);
        var dp = descriptor.DependencyProperty;
        Control.SetBinding(dp, Bind);

在我的案例中,DependencyPropertyName(使用TextBlock测试)为“文本”。我认为它必须是“ TextProperty”。 这就是为什么描述符始终为空的原因。