[英]How can I use a dotted path as a property name of a PropertyChangedEventHandler?
[英]How to create PropertyChangedEventHandler from method name
我是 OO 編程和 C# 的新手,我需要一些幫助。
我有幾個方法可以在類成員的 PropertyChanged 事件上調用。 該類的集合是基於來自文本文件的數據創建的
我希望要調用的方法也像任何其他數據一樣從文本文件中讀取(然后作為字符串)。
我如何實例化事件處理程序並注冊到該事件而不將方法作為參數,而是將方法名稱作為參數,例如:
var handler = new PropertyChangedEventHandler(MyHandler)
myData.PropertyChanged += (PropertyChangedEventHandler)handler;
我想實現以下目標:
string str = "MyHandler";
var handler = new PropertyChangedEventHandler(str)
myData.PropertyChanged += (PropertyChangedEventHandler)str;`
我知道這行不通,但我不知道去哪里尋找解決方案。
謝謝。
您可以嘗試使用反射來查找方法並將其動態分配給委托,例如:
public void AssignPropertyChangedMethod(string methodName)
{
var methodInfo = this.GetType().GetMethod(methodName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
var handler = Delegate.CreateDelegate(typeof(PropertyChangedEventHandler), this, methodInfo);
myData.PropertyChanged += (PropertyChangedEventHandler)handler;
}
我自己還沒有測試過,所以我不確定它會起作用,但也許它會讓你朝着正確的方向前進。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.