public void LoadXml() { MenuList.Clear(); m_Doc = XDocument.Load(m_Path); if (m_Doc != null) { List <XElement> lst = m_Doc.Root.Elements("Menu").ToList(); for (int i = 0; i < lst.Count; i++) { long menuID = long.Parse(lst[i].Attribute("MenuId").Value); string menuName = lst[i].Attribute("MenuName").Value; bool hasChild = bool.Parse(lst[i].Attribute("HasChild").Value); MyMenu menu = new MyMenu(); menu.MenuId = menuID; menu.MenuName = menuName; menu.HasChild = hasChild; if (hasChild) { List <MyProto> lstProto = GetProtoListByMenuName(menuID); if (lstProto != null) { menu.ProtoList.AddRange(lstProto); } } MenuList.Add(menu); } } }
public void UpdateMenu(MyMenu menu) { int index = 0; XElement xe = GetXElementByID(menu.MenuId, out index); if (xe == null) { return; } xe.Attribute("MenuName").SetValue(menu.MenuName); }
public void DeleteMenu(MyMenu menu) { int index = 0; XElement xe = GetXElementByID(menu.MenuId, out index); if (xe == null) { return; } xe.Remove(); MenuList.Remove(menu); }
public bool MoveMenu(MyMenu menu, bool isPrev) { //元素的索引 int index = 0; XElement xe = GetXElementByID(menu.MenuId, out index); if (isPrev) { //上移 if (index == 0) { MessageBox.Show("已经是第一个"); return(false); } int toIndex = index - 1; XElement prev = GetXElementByIndex(toIndex); prev.AddBeforeSelf(xe); xe.Remove(); } else { //下移 if (index == m_Doc.Root.Elements("Menu").ToList().Count - 1) { MessageBox.Show("已经是最后一个"); return(false); } int toIndex = index + 1; XElement next = GetXElementByIndex(toIndex); next.AddAfterSelf(xe); xe.Remove(); } return(true); }
//==================================================================================== #region 菜单操作 public void AddMenu(MyMenu menu) { XElement xe = new XElement("Menu", new XAttribute("MenuId", menu.MenuId), new XAttribute("MenuName", menu.MenuName), new XAttribute("HasChild", menu.HasChild)); m_Doc.Root.Add(xe); }