これが可能かどうかはわかりませんが、質問してみようと思いました。まず、私の目的のために、これは XAML 部分ではなく C# 部分で機能する必要があります。これは私が持っているもので、動作します:
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 行を分割の 2 番目の結果に置き換えるだけです。ただし、分割の最初の結果に従って binding.Source 行をどのように置き換えますか。これが可能であれば、"MyClass2Object.StringVar" のような文字列を渡して TextBox の Text プロパティをそのプロパティにバインドするか、"AnotherClassObject.StringProperty" のような文字列を渡して TextBox' ■ テキスト プロパティは、AnotherClassObject という名前の変数でインスタンス化されたオブジェクトの StringProperty プロパティにバインドします。私が理にかなっていることを願っています。