0
我正在編寫代碼來生成附加到屬性的一堆文本框。有什麼方法可以將源設置爲使用反射找到的屬性,並將其存儲爲PropertyInfo?是否有可能使用WPF中的反射來綁定到屬性?
代碼通過屬性會:
foreach(PropertyInfo prop in GetType().GetProperties())
{
UI.Text ctrl = new UI.Text(prop.Name, prop.GetValue(this).ToString(), prop);
sp.Children.Add(ctrl);
}
(注:UI.Text是包含文本框自定義控制,和SP是一個StackPanel)
綁定代碼:
Binding bind = new Binding() { Source = prop };
if (prop.CanWrite)
{
TextBox.SetBinding(TextBox.TextProperty, bind);
}
else
{
TextBox.IsEnabled = false;
}
我當前遇到錯誤「雙向綁定需要路徑或XPath」,這通常會在嘗試綁定到只讀屬性時發生。由於代碼受到保護,顯然,綁定到PropertyInfo的綁定不會綁定到屬性本身。
你可以顯示財產執行? –
將Binding的'Path'設置爲屬性的名稱,將Source設置爲擁有該屬性的對象。 – Clemens