我想知道如何找到附加我的事件的方法的名称。
我有事件的eventInfo
EventInfo eventInfo = elemento.GetType().GetEvent("Click");
我知道附加事件的元素。
FrameworkElement elemento = target.TargetObject as FrameworkElement;
获得方法名称后,我可以使用此委托。
Delegate methodDelegate = Delegate.CreateDelegate(eventInfo.EventHandlerType, parentClass, "? ? ? ?");
我有一个markupextension类:
[MarkupExtensionReturnType(typeof运算(FrameworkElement的))] [ContentProperty( “内容”)] 公共类InsereSom:MarkupExtension {
public InsereSom()
{ }
[ConstructorArgument("Ligado")]
public bool Ligado
{
get;
set;
}
[ConstructorArgument("Evento")]
public RoutedEvent Evento
{
get;
set;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
IProvideValueTarget target = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));
FrameworkElement elemento = target.TargetObject as FrameworkElement;
RoutedEventHandler metodo = new RoutedEventHandler(EventoInsereSom);
elemento.AddHandler(Evento, metodo);
EventInfo eventInfo = elemento.GetType().GetEvent("Click");
FrameworkElement parentClass = (MainWindow)((Grid)elemento.Parent).Parent;
Delegate methodDelegate = Delegate.CreateDelegate(eventInfo.EventHandlerType, parentClass, "Button_Click");
eventInfo.RemoveEventHandler(elemento, methodDelegate);
eventInfo.AddEventHandler(elemento, methodDelegate);
return new System.Windows.Controls.Label();
}
public void EventoInsereSom(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello Extension Markup");
}
}
和这个Xaml代码
我想首先将我的活动放在标记课上。在代码背后的事件之前。 为此,我需要xaml调用的组件的方法名称。但是我无法通过代码获得它。
有什么办法吗?