void txtTitle_KeyDown(object sender, KeyEventArgs e) { TreeViewItemInfo info = this.DataContext as TreeViewItemInfo; if (info == null) { return; } TextBox txt = sender as TextBox; if (txt == null) { return; } switch (e.Key) { case Key.Return: info.Title = txt.Text; tbTitle.Text = txt.Text; info.IsEdit = false; txtTitle.Visibility = System.Windows.Visibility.Hidden; tbTitle.Visibility = System.Windows.Visibility.Visible; break; case Key.Escape: info.IsEdit = false; txtTitle.Visibility = System.Windows.Visibility.Hidden; tbTitle.Visibility = System.Windows.Visibility.Visible; break; } }
public int GetItemIndex(TreeViewItemInfo info) { int index = 0; bool state = GetItemIndex(Source, info, ref index); return(index); }
//protected override void OnPreviewMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) //{ // TreeViewItem tvItem = Common.FindVisualParent<TreeViewItem>((DependencyObject)InputHitTest(e.GetPosition(null))) as TreeViewItem; // if (adorner != null) // mAdornerLayer.Remove(adorner); // if (SelItem == null) return; // if (!(SelItem.Header is TreeViewItemInfo)) return; // if (SelItem != null && tvItem != null) // { // if (SelItem == tvItem) // { // SelItem = null; // return; // } // } // if (SelItem != null && tvItem != null && ((TreeViewItemInfo)SelItem.Header).Id != ((TreeViewItemInfo)tvItem.Header).Id) // { // MoveTreeViewItem((TreeViewItemInfo)SelItem.Header, (TreeViewItemInfo)tvItem.Header); // } // else if (SelItem != null && tvItem == null) // { // MoveTreeViewItem((TreeViewItemInfo)SelItem.Header, null); // } // base.OnPreviewMouseLeftButtonUp(e); //} void MoveTreeViewItem(TreeViewItemInfo SourceInfo, TreeViewItemInfo TargetInfo) { TreeViewItemInfo sourceParent = GetParentInfo(SourceInfo, Source); if (sourceParent != null) { sourceParent.Children.Remove(SourceInfo); if (TargetInfo != null) { TargetInfo.Children.Add(SourceInfo); SourceInfo.ParentId = TargetInfo.Id; } else { Source.Add(SourceInfo); SourceInfo.ParentId = new Guid(); } } else { Source.Remove(SourceInfo); if (TargetInfo != null) { TargetInfo.Children.Add(SourceInfo); SourceInfo.ParentId = TargetInfo.Id; } else { Source.Add(SourceInfo); SourceInfo.ParentId = new Guid(); } } }
void txtTitle_LostFocus(object sender, RoutedEventArgs e) { TreeViewItemInfo info = this.DataContext as TreeViewItemInfo; if (info == null) { return; } info.IsEdit = false; txtTitle.Visibility = System.Windows.Visibility.Hidden; tbTitle.Visibility = System.Windows.Visibility.Visible; }
void TreeViewControl_Click(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; if (item == null) { return; } if (SelItem == null) { return; } TreeViewItemInfo info = (TreeViewItemInfo)SelItem.Header; TreeViewItemInfo addinfo; TreeViewItemInfo parentInfo; switch (item.Tag.ToString()) { case "Add": addinfo = new TreeViewItemInfo(); addinfo.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(source_CollectionChanged); addinfo.ParentId = info.ParentId; parentInfo = GetParentInfo(info, source); if (parentInfo == null) { source.Add(addinfo); } else { parentInfo.Children.Add(addinfo); } addinfo.IsEdit = true; break; case "AddSub": addinfo = new TreeViewItemInfo(); addinfo.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(source_CollectionChanged); addinfo.ParentId = info.Id; info.Children.Add(addinfo); addinfo.IsEdit = true; break; case "Edit": //info.IsEdit = true; //break; case "Del": break; } }
void info_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { TreeViewItemInfo info = sender as TreeViewItemInfo; if (info == null) { return; } switch (e.PropertyName) { case "IsEdit": SetEditMode(info.IsEdit); break; } }
TreeViewItemInfo GetParentInfo(TreeViewItemInfo info, ObservableCollection <TreeViewItemInfo> list) { TreeViewItemInfo model = null; foreach (var v in list) { if (v.Id == info.ParentId) { return(v); } else { model = GetParentInfo(info, v.Children); } } return(model); }
void EditableTabHeaderControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { TreeViewItemInfo info = e.NewValue as TreeViewItemInfo; TreeViewItemInfo oldInfo = e.NewValue as TreeViewItemInfo; //if (oldInfo != null) // oldInfo.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(info_PropertyChanged); //if (info != null) // info.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(info_PropertyChanged); if (info == null) { return; } Binding binding = new Binding(); binding.Source = info; binding.Mode = BindingMode.TwoWay; binding.Path = new PropertyPath("IsEdit"); this.SetBinding(IsInEditModeProperty, binding); }
private bool GetItemIndex(ObservableCollection <TreeViewItemInfo> list, TreeViewItemInfo info, ref int index) { bool state = false; foreach (TreeViewItemInfo _info in list) { index++; if (_info.Id == info.Id) { state = true; break; } state = GetItemIndex(_info.Children, info, ref index); if (state) { break; } } return(state); }
void TreeViewEditItem_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { TreeViewItemInfo info = e.NewValue as TreeViewItemInfo; if (info == null) { return; } txtTitle.Text = info.Title; tbTitle.Text = info.Title; if (info.IsEdit) { txtTitle.Visibility = System.Windows.Visibility.Visible; tbTitle.Visibility = System.Windows.Visibility.Hidden; } else { txtTitle.Visibility = System.Windows.Visibility.Hidden; tbTitle.Visibility = System.Windows.Visibility.Visible; } }