Установить привязку с неизвестными объектами - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь установить свойства передачи привязки в качестве параметров, но не могу найти способ, как это сделать. Это работает:

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

Я уже пытался следовать этому: Зависимость свойства от строки

        var descriptor = DependencyPropertyDescriptor.FromName(dp,typeof(TextBlock), typeof(Control));
        descriptor.SetValue(Control, bind);

Но я получаю нулевое значение из дескриптора.

1 Ответ

0 голосов
/ 07 июня 2019

Это похоже на работу:

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

Где DependencyPropertyName в моем случае (тестирование с TextBlock) - это «Текст». Я думал, что это должно быть "TextProperty". Вот почему дескриптор всегда был нулевым.

...