unsafe public void Create() { xc.XInitXCGUI(""); int hWindow = XWnd.Create(0, 0, 500, 400, "xcgui", 0, 15); hListBox = XListBox.Create(0, 0, 300, 300, hWindow); XListBox.SetItemTemplateXML(hListBox, "..\\..\\ListBox_Item.xml"); int hAdapter = XAdapterTable.Create(); XListBox.BindAdapter(hListBox, hAdapter); XAdapterTable.AddColumn(hAdapter, "name"); XAdapterTable.AddColumn(hAdapter, "name1"); int nItem = XAdapterTable.AddItemText(hAdapter, "dasemimi"); XAdapterTable.SetItemText(hAdapter, nItem, 1, "xiaosemimi"); nItem = XAdapterTable.AddItemText(hAdapter, "dasemimi1"); XAdapterTable.SetItemText(hAdapter, nItem, 1, "xiaosemimi1"); XEle.RegEventCPP(hListBox, xcConst.XE_LISTBOX_TEMP_CREATE_END, new XE_LISTBOX_TEMP_CREATE_END_CPP(__OnListBoxTemplateCreateEnd)); XWnd.ShowWindow(hWindow, 5); xc.XRunXCGUI(); xc.XExitXCGUI(); }
/// <summary> /// 获取或设置指定位置的项目。 /// </summary> /// <param name="index"></param> /// <exception cref="ArgumentOutOfRangeException" /> /// <returns></returns> public XspfTrack this[int index] { get { return(new XspfTrack(XEle.Elements("track").ElementAt(index))); } set { if (index == 0) { try { XEle.Element("track").Remove(); } catch (NullReferenceException) { throw new ArgumentOutOfRangeException("index"); } XEle.AddFirst(value.XEle); } else { XElement prev = XEle.Elements("track").ElementAt(index - 1); try { prev.ElementsAfterSelf("track").First().Remove(); } catch (NullReferenceException) { throw new ArgumentOutOfRangeException("index"); } prev.AddAfterSelf(value.XEle); } } }
/// <summary> /// 将列表中的项目复制到指定数组。 /// </summary> /// <param name="array">目标数组</param> /// <param name="arrayIndex">开始位置的下标</param> public void CopyTo(XspfTrack[] array, int arrayIndex) { foreach (XElement ele in XEle.Elements("track")) { array[arrayIndex] = new XspfTrack(ele); arrayIndex++; } }
unsafe public void Create() { xc.XInitXCGUI(""); int hWindow = XWnd.Create(0, 0, 500, 300, "xcgui", 0, xcConst.xc_window_style_default); int hBtn = XBtn.Create(0, 0, 100, 100, "按钮", hWindow); XEle.RegEventC(hBtn, xcConst.XE_BNCLICK, new XE_BNCLICK_C(__OnBtnClick)); XWnd.ShowWindow(hWindow, 5); xc.XRunXCGUI(); xc.XExitXCGUI(); }
/// <summary> /// 删除指定项目,并返回该项目的存在性。 /// </summary> /// <param name="item">要删除的项目</param> /// <returns>项目是否存在</returns> public bool Remove(XspfTrack item) { XElement toDel = XEle.Elements().FirstOrDefault(x => x == item.XEle); if (toDel == null) { return(false); } toDel.Remove(); return(true); }
unsafe private int __OnListBoxTemplateCreateEnd(ref listBox_item_i pItem, bool *pbHandled) { int hBtn = XListBox.GetTemplateObject(hListBox, pItem.index, 2); if (xc.IsHXCGUI(hBtn, xcConst.XC_BUTTON)) { XEle.RegEventCPP1(hBtn, xcConst.XE_BNCLICK, new XE_BNCLICK_CPP1(__OnBtnClick)); } return(0); }
/// <summary> /// 在指定位置插入新的项目。 /// </summary> /// <param name="index">要插入的位置</param> /// <param name="item">要插入的项目</param> /// <exception cref="ArgumentOutOfRangeException"/> public void Insert(int index, XspfTrack item) { if (index == 0) { XEle.AddFirst(item.XEle); } else { XElement prev = XEle.Elements("track").ElementAt(index - 1); prev.AddAfterSelf(item.XEle); } }
/// <summary> /// 搜索制定项目的编号。当指定项目不存在的时候,返回-1。 /// </summary> /// <param name="item">要搜索的项目</param> /// <returns></returns> public int IndexOf(XspfTrack item) { int index = 0; foreach (XElement toSearch in XEle.Elements("track")) { if (toSearch == item.XEle) { return(index); } index++; } return(-1); }
/// <summary> /// 获取枚举器。 /// </summary> /// <returns></returns> public IEnumerator <XspfTrack> GetEnumerator() { return(XEle.Elements("track").Select(x => new XspfTrack(x)).GetEnumerator()); }
/// <summary> /// 检查是否包含某个项目。 /// </summary> /// <param name="item">要查找的项目</param> /// <returns></returns> public bool Contains(XspfTrack item) { return(XEle.Elements().Contains(item.XEle)); }
/// <summary> /// 清除所有项目。 /// </summary> public void Clear() { XEle.Elements("track").Remove(); }
/// <summary> /// 添加一个项目。(添加的位置未知) /// </summary> /// <param name="item"></param> public void Add(XspfTrack item) { XEle.Add(item.XEle); }
/// <summary> /// 删除指定位置的项目。 /// </summary> /// <param name="index">要删除的位置</param> /// <exception cref="ArgumentOutOfRangeException" /> public void RemoveAt(int index) { XEle.Elements("track").ElementAt(index).Remove(); }