Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TagItemClicked(Tag Tag, bool Checked)
        {
            Guid TagId = Tag.Id;

            if (TagIdsInternal.Contains(TagId))
            {
                TagIdsInternal.Remove(TagId);
            }
            else
            {
                if (!MultipleTags)
                {
                    TagIdsInternal.Clear();
                }
                TagIdsInternal.Add(TagId);
            }

            OnTagsChanged?.Invoke(this, new EventArgs());

            UpdateState();
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        public void UpdateState()
        {
            // Add any pending tags.
            if (TagBuilder.HasTags)
            {
                foreach (string name in AddTagNames)
                {
                    foreach (Tag Tag in TagBuilder.Tags)
                    {
                        if (Tag.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase))
                        {
                            TagIdsInternal.Add(Tag.Id);

                            OnTagsChanged?.Invoke(this, new EventArgs());
                            break;
                        }
                    }
                }

                AddTagNames.Clear();

                // Remove any tags that no longer exist.
                for (int i = 0; i < TagIdsInternal.Count; i++)
                {
                    Guid id     = TagIdsInternal[i];
                    bool exists = false;

                    foreach (Tag tag in TagBuilder.Tags)
                    {
                        if (tag.Id == id)
                        {
                            exists = true;
                            break;
                        }
                    }

                    if (!exists)
                    {
                        TagIdsInternal.RemoveAt(i);
                        i--;
                    }
                }
            }

            // Update the text.

            /*
             * string Result = "";
             * foreach (Tag Tag in TagBuilder.Tags)
             * {
             *  if (TagIdsInternal.Contains(Tag.Id))
             *  {
             *      if (Result.Length > 0)
             *      {
             *          Result += ", ";
             *      }
             *      Result += Tag.Name;
             *  }
             * }
             * MainTextBox.Text = Result;
             */

            Invalidate();

            // Set what is checked.
            TagBuilder.SetCheckedTags(TagIdsInternal);
        }