private void SetCurrentItemInEditMode(bool EditMode) { // Make sure that the SelectedItem is actually a TreeViewItem // and not null or something else if (this.SelectedItem is TreeViewItemExtended) { TreeViewItemExtended tvi = this.SelectedItem as TreeViewItemExtended; tvi.IsInEditMode = true; //// Also make sure that the TreeViewItem //// uses an EditableTextBlock as its header //if (tvi.Header is EditableTextBlock) //{ // EditableTextBlock etb = tvi.Header as EditableTextBlock; // // Finally make sure that we are // // allowed to edit the TextBlock // if (etb.IsEditable) // etb.IsInEditMode = EditMode; //} } }
/// <summary> /// Add a new treeview item to the specified parent. Manage dummy node and PopulateOnDemand /// </summary> /// <param name="parent"></param> /// <param name="label"></param> /// <param name="tag"></param> /// <param name="needDummy"></param> /// <returns></returns> public TreeViewItem AddItem(TreeViewItem parent, string label, object tag, bool needDummy = true) { TreeViewItemExtended node = new TreeViewItemExtended(); node.Header = label; node.Tag = tag; if (PopulateOnDemand && needDummy) { node.Expanded += new RoutedEventHandler(node_Expanded); node.Items.Add(new TreeViewItemDummy()); } if (parent != null) { parent.Items.Add(node); } else { this.Items.Add(node); } return(node); }