c#获取事件绑定的所有方法

private bool HasBindingPropertiesListChangedEvent()
{
    var targetType = this._propertiesProvider.Properties.GetType();
    var eventField = targetType.GetField("ListChanged", BindingFlags.Instance | BindingFlags.NonPublic);
    if (eventField == null)
    {
        return false;
    }

    var handle = eventField.GetValue(this._propertiesProvider.Properties) as ListChangedEventHandler;
    if (handle == null)
    {
        return false;
    }

    return handle.GetInvocationList().Find(x => typeof(DataEntityPanelViewModel_OL).Name == x.Target.GetType().Name) != null;
}
posted @ 2014-08-22 16:14  一马  阅读(3966)  评论(0编辑  收藏  举报