/// <summary> /// 添加一个Ribbon页 /// </summary> /// <param name="pageEntity"></param> public void AddGroup(ToolStripGroupEntity entity) { Debug.Assert(entity != null, "entity 为 null"); if (entity == null) { return; } //添加索引信息 _indexXml.XPathSelectElement(XPATH_Index_Groups).Add(XElement.Parse(entity.ToXml())); SaveIndexFile(); //发布事件 ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity); _eventAggregator.GetEvent <ToolStripGroupAddedEvent>().Publish(args); }
/// <summary> /// 删除一个Ribbon分组,以及其下所有项 /// </summary> /// <param name="id"></param> public void RemoveGroup(ToolStripGroupEntity entity) { Debug.Assert(entity != null, "entity 为 null"); if (entity == null) { return; } //查找并删除其下所有项,并删除 //避免发布过多删除项事件,所以不调用 Delete(item); XElement[] entityElements = _indexXml.XPathSelectElements( String.Format(XPATH_Index_SelectToolStrip_ByGroupId, entity.Id)).ToArray(); foreach (XElement itemElement in entityElements) { string itemId = itemElement.Attribute("Id").Value; //移除索引信息 itemElement.Remove(); //移除实体文件 _packageService.Current.DeleteFile(Path.Combine(Constant.PACKAGE_NAVIGATION_TOOLSTRIP_FOLDER, itemId)); //移除缓存 _cachingService.Remove(itemId); } //删除该分组 XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectGroup, entity.Id)); if (element != null) { element.Remove(); } SaveIndexFile(); //发布事件 ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity); _eventAggregator.GetEvent <ToolStripGroupRemovedEvent>().Publish(args); }
public void UpdateGroup(ToolStripGroupEntity entity) { Debug.Assert(entity != null, "ToolStripGroupEntity 为 null"); if (entity == null) { return; } //更新索引信息 XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectGroup, entity.Id)); Debug.Assert(element != null, "更新窗体文件夹索引时未找到指定文件夹的索引记录"); if (element != null) { element.ReplaceWith(XElement.Parse(entity.ToXml())); SaveIndexFile(); //发布事件 ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity); _eventAggregator.GetEvent <ToolStripGroupUpdatedEvent>().Publish(args); } }