void TagsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { //if (e.Action == NotifyCollectionChangedAction.Remove) //{ // foreach (object o in e.OldItems) // { // TokenizedTagItem tag = (TokenizedTagItem)o; // if (tag != null) // { // Note.Tags.Remove(tag.Text); // } // } //} if (e.Action == NotifyCollectionChangedAction.Add) { foreach (object o in e.NewItems) { TokenizedTagItem tag = (TokenizedTagItem)o; if (tag != null) { tag.PropertyChanged += Tag_PropertyChanged; //Note.Tags.Add(tag.Text); } } } }
/// <summary> /// Raises the TagDoubleClick event /// </summary> internal void RaiseTagDoubleClick(TokenizedTagItem tag) { //if (this.IsSelectable) // this.SelectedItem = tag; UpdateAllTagsProperty(); tag.IsEditing = true; }
public TokenizedTagEventArgs(TokenizedTagItem item) { this.Item = item; }
/// <summary> /// Raises the TagClick event /// </summary> internal void RaiseTagApplied(TokenizedTagItem tag) { /* if (this.IsSelectable) this.SelectedItem = tag; */ if (this.TagApplied != null) { TagApplied(this, new TokenizedTagEventArgs(tag)); } }
/// <summary> /// Removes a tag from the collection /// </summary> internal void RemoveTag(TokenizedTagItem tag, bool cancelEvent = false) { if (this.ItemsSource != null) { ((IList)this.ItemsSource).Remove(tag); // assume IList for convenience this.Items.Refresh(); //UpdateAllTagsProperty(); if (TagRemoved != null && !cancelEvent) { TagRemoved(this, new TokenizedTagEventArgs(tag)); } // select the last item if (this.SelectedItem == null && this.Items.Count > 0) { //TokenizedTagItem itemToSelect = this.Items.GetItemAt(0) as TokenizedTagItem; TokenizedTagItem itemToSelect = Items.GetItemAt(Items.Count - 1) as TokenizedTagItem; if (!object.ReferenceEquals(itemToSelect, null)) { RaiseTagClick(itemToSelect); if (this.IsSelectable) this.SelectedItem = itemToSelect; } //this.SelectedItem = this.Items.CurrentItem; } } }
/// <summary> /// Adds a tag to the collection /// </summary> internal void AddTag(TokenizedTagItem tag) { TokenizedTagItem itemToSelect = null; if (this.SelectedItem == null && this.Items.Count > 0) { itemToSelect = (TokenizedTagItem)this.SelectedItem; } ((IList)this.ItemsSource).Add(tag); // assume IList for convenience this.Items.Refresh(); // select the previous item if (!object.ReferenceEquals(itemToSelect, null)) { // && !object.ReferenceEquals(TagApplied, null) //TagApplied.Invoke(this, new TokenizedTagEventArgs(appliedTag)); RaiseTagClick(itemToSelect); if (this.IsSelectable) this.SelectedItem = itemToSelect; } // update values //UpdateAllTagsProperty(); if (TagAdded != null) TagAdded(this, new TokenizedTagEventArgs(tag)); }
internal TokenizedTagItem InitializeNewTag(bool suppressEditing = false) { var newItem = new TokenizedTagItem() { IsEditing = !suppressEditing }; AddTag(newItem); UpdateAllTagsProperty(); this.IsEditing = !suppressEditing; return newItem; }
public void OnApplyTemplate(TokenizedTagItem appliedTag = null) { Button createBtn = this.GetTemplateChild("PART_CreateTagButton") as Button; if (createBtn != null) { createBtn.Click -= createBtn_Click; createBtn.Click += createBtn_Click; //createBtn.Focus(); // nixin - focuses //createBtn_Click(createBtn, null); } base.OnApplyTemplate(); if (appliedTag != null && !object.ReferenceEquals(TagApplied, null)) { TagApplied.Invoke(this, new TokenizedTagEventArgs(appliedTag)); } }