//为item设置data protected void SetItemData(GameObject item, int index_, object data_) { if (m_item2data.ContainsKey(item)) { if (m_item2data[item] == data_) { //数据一样,不重复设置 return; } } m_item2data[item] = data_; KComponentEvent <GameObject, int, object> .InvokeEvent(m_onDataChanged, item, index_, data_); LuaEvtCenter.AddGoEvent(gameObject, KUI_EVT.LIST_ITEM_DATA, item, index_ + 1); //lua从1开始 KListViewItem view = CreateItemView(item, index_); if (view != null) { view.Index = index_; view.Show(data_); } }
//清除item的data void ClearItemData(GameObject item, int index_) { if (!m_item2data.ContainsKey(item)) { return; } m_item2data.Remove(item); KComponentEvent <GameObject, int> .InvokeEvent(m_onDataRemoved, item, index_); KListViewItem view = CreateItemView(item, index_); if (view != null) { view.Index = -1; view.Destroy(); } }
//创建列表视图 KListViewItem CreateItemView(GameObject item_, int index_) { if (m_itemViewType == null) { return(null); } if (m_item2view.ContainsKey(item_)) { return(m_item2view[item_]); } KListViewItem view = ClassUtil.New(m_itemViewType) as KListViewItem; view.ShowGameObjectEx(item_); m_item2view[item_] = view; view.Retain(this); return(view); }