private void barButtonItem_ItemClick(object sender, ItemClickEventArgs e)
{
MethodInfo m;
if (hashPopupItem[e.Item.Name] == null)
{
Type t = typeof (PopouMenuMethod);
m = t.GetMethod(e.Item.Name);
hashPopupItem.Add(e.Item.Name, m);
}
else
m = (MethodInfo) hashPopupItem[e.Item.Name];
m.Invoke(new PopouMenuMethod(), new object[] {TotalManager.TreeList.FocusedNode});
}
这是一个注册方法,当然不同的UI设计可以给按钮注册不同的方法,关键的原理如何用反射获取方法:
MethodInfo m; 创建一个方法信息对象
Type t = typeof (PopouMenuMethod); 此处的PopouMenuMethod 就是方法属于的那个类。通过类名创造出类型声明。
m = t.GetMethod(e.Item.Name); 通过类型声明t 根据方法名称 来获取方法,这里的方法名称为e.Item.Name 它就是一个字符串
m.Invoke(new PopouMenuMethod(), new object[] {TotalManager.TreeList.FocusedNode});// 执行方法
param1:对象
param2:参数