private void NewTag() { if (!string.IsNullOrEmpty(TagNameText) && SelectedTag > -1) { if (EditTagID == Guid.Empty)//New Tag { var tag = AnnCategoryTagUtil.Instance.AddAndReturnTag(TagNameText, AnnotationTools.TagColors[SelectedTag].ColorValue); var tagItem = new TagItem { Tag = tag, IsCheck = false }; TagCollections.Add(tagItem); UpdateTagCollection.Invoke(tagItem, TagEditEnum.New); } else// Edit Tag { var tag = AnnCategoryTagUtil.Instance.UpdateAndReturnTag(EditTagID, TagNameText, AnnotationTools.TagColors[SelectedTag].ColorValue); var editTagIndex = TagCollections.ToList <TagItem>().FindIndex(x => x.Tag.TagId == EditTagID); if (editTagIndex > -1) { TagCollections[editTagIndex] = new TagItem { Tag = tag, IsCheck = TagCollections[editTagIndex].IsCheck }; UpdateTagCollection.Invoke(TagCollections[editTagIndex], TagEditEnum.Edit); } } SwitchAnnoAndTag(true); } }
public void UpdateTagCollections(TagItem tagItem, TagEditEnum tagEditEnum) { if (tagItem != null) { switch (tagEditEnum) { case TagEditEnum.New: TagCollections.Add(tagItem); break; case TagEditEnum.Edit: var editTagIndex = TagCollections.ToList <TagItem>().FindIndex(x => x.Tag.TagId == tagItem.Tag.TagId); if (editTagIndex > -1) { TagCollections[editTagIndex] = new TagItem { Tag = tagItem.Tag, IsCheck = TagCollections[editTagIndex].IsCheck }; } break; case TagEditEnum.Delete: var deleteTagIndex = TagCollections.ToList <TagItem>().FindIndex(x => x.Tag.TagId == tagItem.Tag.TagId); if (deleteTagIndex > -1) { TagCollections.RemoveAt(deleteTagIndex); } break; } } }