Я не уверен, что это вообще возможно, но я подумал, что спросить. Прежде всего, для моих целей я требую, чтобы это работало в части C #, а не в части XAML. Вот что у меня есть и работает:
public partial class MyClass1 : Window
{
public MyClass2 MyClass2Object { get; set; }
public MyClass1()
{
InitializeComponent();
MyClass2Object = new MyClass2();
Binding binding = new Binding();
binding.Source = MyClass2Object;
binding.Path = new PropertyPath("StringVar");
TextBoxFromXaml.SetBinding(TextBox.TextProperty, binding);
}
}
public class MyClass2
{
public string StringVar { get; set; }
public MyClass2()
{
StringVar = "My String Here";
}
}
И это будет привязывать к моему свойству StringVar именно так, как я бы этого хотел. Тем не менее, мой вопрос заключается в том, что, если у меня есть литеральная строка «MyClass2Object.StringVar» при установке источника привязки. Я понимаю, что могу использовать функцию split для отделения «MyClass2Object» и «StringVar» от более длинной строки. Затем я могу просто заменить новую строку PropertyPath вторым результатом из разбиения. Тем не менее, как бы заменить строку binding.Source в соответствии с первым результатом разбиения. Если это возможно, я мог бы передать строку типа «MyClass2Object.StringVar» и привязать свойство Text TextBox к этому свойству, или если передать строку типа «AnotherClassObject.StringProperty» и привязать свойство Text TextBox к Свойство StringProperty объекта, созданного в переменной с именем AnotherClassObject. Я надеюсь, что это имеет смысл.