Exemplo n.º 1
0
 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);
         }
     }
 }
Exemplo n.º 2
0
 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);
                    };
                }
            }
        }