protected bool DisconnectDynamicSlot(QObject sender, string signal, Delegate value) { int i = this.slots.FindIndex(h => h.Delegate == value); if (i >= 0) { int signalId = this.slots[i].SignalId; bool disconnect = QMetaObject.Disconnect(sender, signalId, this, i + MetaObject.MethodCount); this.slots.RemoveAt(i); return(disconnect); } return(false); }