public void RemovePanelEvent(string parentPanel, int key, UIBindingItem onOpen) { if (onOpen != null && panelEventDic != null && !string.IsNullOrEmpty(parentPanel)) { if (panelEventDic.ContainsKey(parentPanel) && panelEventDic[parentPanel].ContainsKey(key) && panelEventDic[parentPanel][key] != null) { panelEventDic[parentPanel].Remove(key); } } }
public void RegistPanelEvent(string parentPanel, int key, UIBindingItem onOpen) { if (onOpen != null && !string.IsNullOrEmpty(parentPanel)) { if (!panelEventDic.ContainsKey(parentPanel)) { panelEventDic[parentPanel] = new Dictionary <int, UIBindingItem>(); } panelEventDic[parentPanel][key] = onOpen; } }
/// <summary> /// 注册ui事件 /// </summary> protected void RegistUIEvents() { if (bindingCtrl == null) { bindingCtrl = new UIBindingController(); } foreach (var item in Bridges) { var bridgeInfo = item; if (!string.IsNullOrEmpty(bridgeInfo.inNode) && !string.IsNullOrEmpty(bridgeInfo.outNode)) { UIBindingItem bindingItem = new UIBindingItem(); var index = item.index; bindingItem.openAction = (x, y) => { var parentPanel = x; var panelName = bridgeInfo.outNode; return(UIFacade.Instence.Open(parentPanel, panelName, index, y)); }; bindingItem.closeAction = () => { var panelName = bridgeInfo.outNode; UIFacade.Instence.Close(this, panelName); }; bindingItem.hideAction = () => { var panelName = bridgeInfo.outNode; UIFacade.Instence.Hide(this, panelName); }; bindingItem.isOpenAction = () => { var panelName = bridgeInfo.outNode; return(UIFacade.Instence.IsPanelOpen(this, panelName)); }; bindingCtrl.RegistPanelEvent(bridgeInfo.inNode, bridgeInfo.index, bindingItem); this.onDestroy += () => { //在本组合关闭时销毁事件 bindingCtrl.RemovePanelEvent(bridgeInfo.inNode, bridgeInfo.index, bindingItem); }; } } }