Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        public int GetItemIndex(TreeViewItemInfo info)
        {
            int  index = 0;
            bool state = GetItemIndex(Source, info, ref index);

            return(index);
        }
Exemplo n.º 3
0
        //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();
                }
            }
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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;
            }
        }