/// <summary> /// 设置图元是否可用 /// </summary> /// <param name="dataManager">事件管理器</param> /// <param name="list">遍历过的图元链表</param> /// <param name="graphElement">当前图元</param> /// <param name="enable">图元是否可用</param> public void ReBindEventNode(DataManager dataManager, List<GraphElement> list, GraphElement graphElement, bool enable) { if (!list.Contains(graphElement)) // 还没有遍历过当前图元 { list.Add(graphElement); if(enable) { graphElement.Enable = enable; } else { if(graphElement is SlotContainer) // 插槽容器 { if(!dataManager.IsConnectEventNode(graphElement as SlotContainer)) { graphElement.Enable = enable; } } else if(graphElement is ConnectorContainer) // 连接线 { if (!dataManager.IsConnectEventNode(graphElement as ConnectorContainer)) { graphElement.Enable = enable; } } } foreach (GraphElement g in dataManager.GetNextGraphElements(graphElement, false)) { ReBindEventNode(dataManager, list, g, enable); } } }