這可能適用於其他地方,但在WinForms中,當我使用綁定時,我發現許多方法想要綁定屬性的名稱。例如:有沒有辦法使靜態的C#綁定工作?
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
我一直對此產生的大問題是,「名稱」和「年齡」被指定爲字符串。這意味着如果有人重命名其中一個人的屬性,編譯器就沒有幫助。該代碼將很好地編譯,但綁定將被打破。
有沒有解決這個問題的標準方法,我錯過了?這感覺就像我需要一些關鍵字,也許稱爲stringof匹配現有的typeof。你可以使用它像:
ageControl.Bind(p,stringof(p.Age).Name);
stringof可以返回一些類,它具有用於獲取的完整路徑,路徑,或字符串的一部分屬性,以便你可以自己分析它。
是這樣的事情已經可以嗎?
這不是動態的結合,許多C#,這是WinForms。 – 2009-09-23 15:12:13
是的。即使您不使用WinForms,這種語言功能也可能派上用場。 – 2009-09-23 15:26:45