我一直在尋找,但我似乎無法找到我在找什麼,所以我會在這裏放棄它。C#WPF如何動態設置屬性設置器方法?
情況: 我有類MainWindow和MainWindowData。在MainWindowData中只有使用UpdateGUI屬性定義的公共屬性。
public class UpdateGUI : Attribute { }
public class MainWindowData
{
[UpdateGUI]
public string TESTVAR { get; set; }
}
現在我想爲MainWindowData中的每個屬性的setter方法添加一個方法。更具體:
void OnPropertyChanged(String PropertyName);
我想我會在主窗口的構造函數獲取所有UpdateGUI屬性,然後莫名其妙地添加另一種方法,但是這就是我卡住了。 我使用此代碼來獲取所有屬性,其工作方式:
List<PropertyInfo> properties = (from pi in typeof(MainWindowData).GetProperties()
where pi.GetCustomAttributes(typeof(UpdateGUI), false).Any()
select pi).ToList();
這給了我,我要更新所有屬性的一個不錯的清單。
所以,問題是:我怎樣才能讓這個屬性動態獲得轉化而來:
到:
[UpdateGUI]
private string _TESTVAR;
public string TESTVAR {
get {
return _TESTVAR;
}
set {
_TESTVAR = value;
OnPropertyChanged("TESTVAR");
}
}
感謝您的幫助!這將不勝感激:)
問候
+1有趣的問題,將很高興看到這是什麼出來。 –