silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight treeview 节点顺序实例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  现在有个需求,就是把silverlight treeview 同级的节点能够通过Button 进行向上向下调整   如果有此类需求,就参吧。 <UserControl xmlns="http://scheR_180_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_180_11845@as.microsoft.com/w

  现在有个需求,就是把silverlight treeview 同级的节点能够通过Button 进行向上向下调整

  如果有此类需求,就参吧。


<UserControl
    xmlns="http://scheR_180_11845@as.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://scheR_180_11845@as.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://scheR_180_11845@as.microsoft.com/expression/blend/2008"
    xmlns:mc="http://scheR_180_11845@as.openxmlformats.org/markup-compatibility/2006"
    xmlns:sdk="http://scheR_180_11845@as.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="tree节点顺序.MainPage"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" BACkground="White">
        <Grid.columnDeFinitions>
            <columnDeFinition Width="277*"/>
            <columnDeFinition Width="123*"/>
        </Grid.columnDeFinitions>

        <sdk:TreeView x:Name="TreeOfLife"/>
        <Button x:Name="up" Content="向上" HorizontalAlignment="Left" Margin="7.948,46,0" VerticalAlignment="Top" Width="82" Height="45" RenderTransformOrigin="0.5,0.5" Click="up_Click" Grid.column="1">

        </Button>
        <Button x:Name="down" Content="向下" HorizontalAlignment="Left" Margin="7.948,130,0" VerticalAlignment="Top" Width="84" RenderTransformOrigin="0.57,0.348" Height="56" Click="down_Click" Grid.column="1"/>

    </Grid>
</UserControl>


  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace tree节点顺序
{
    public partial class MainPage : UserControl
    {
        #region 填充树
        public class ForumInfo
        {
            public int ForumID { get; set; }
            public int ParendID { get; set; }
            public String Forumname { get; set; }
        }
        List<ForumInfo> forumList = new List<ForumInfo>();
        public MainPage()
        {
            InitializeComponent();
            GetForumData();
            AddTreeNode(0,null);
        }
        public void GetForumData()
        {

            forumList.Add(new ForumInfo() { ForumID = 1,ParendID = 0,Forumname = "笔记本版块" });
            forumList.Add(new ForumInfo() { ForumID = 2,Forumname = "台式机版块" });

            forumList.Add(new ForumInfo() { ForumID = 3,ParendID = 1,Forumname = "Dell笔记本" });
            forumList.Add(new ForumInfo() { ForumID = 4,Forumname = "IBM笔记本" });
            forumList.Add(new ForumInfo() { ForumID = 5,Forumname = "IBM-T系列" });
            forumList.Add(new ForumInfo() { ForumID = 6,Forumname = "IBM-R系列" });

            forumList.Add(new ForumInfo() { ForumID = 7,ParendID = 2,Forumname = "联想台式机" });
            forumList.Add(new ForumInfo() { ForumID = 8,Forumname = "方正台式机" });
            forumList.Add(new ForumInfo() { ForumID = 9,Forumname = "HP台式机" });
            forumList.Add(new ForumInfo() { ForumID = 10,Forumname = "联想家悦H系列" });
            forumList.Add(new ForumInfo() { ForumID = 11,Forumname = "联想IdeaCentre系列" });


        }

        private void AddTreeNode(int parentID,TreeViewItem treeViewItem)
        {
            List<ForumInfo> result = (from forumInfo in forumList
                                      where forumInfo.ParendID == parentID
                                      SELEct forumInfo).ToList<ForumInfo>();

            if (result.Count > 0)
            {
                foreach (ForumInfo foruminfo in result)
                {
                    TreeViewItem objTreeNode = new TreeViewItem();
                    objTreeNode.Header = foruminfo.Forumname;
                    objTreeNode.DataContext = foruminfo;


                    if (treeViewItem == null)
                    {
                        TreeOfLife.Items.Add(objTreeNodE);
                    }
                    else
                    {
                        treeViewItem.Items.Add(objTreeNodE);
                    }
                    AddTreeNode(foruminfo.ForumID,objTreeNodE);
                }
            }
        }

        #endregion

        /// <sumMary>
        /// 调整节点顺序
        /// </sumMary>
        /// <param name="updown">向上-1 向下+1</param>
        /// <param name="TreeOfLife">树实例</param>
        private void treeitemupdown(int updown,TreeView TreeOfLifE)
        {
            System.Windows.Controls.TreeViewItem SELEctedItem = TreeOfLife.SELEctedItem as TreeViewItem;

            System.Windows.Controls.TreeViewItem item = SELEctedItem;
            if (SELEctedItem != null)
            {
                System.Windows.Controls.TreeViewItem itemParent = item.Parent as TreeViewItem;
                System.Windows.Controls.TreeViewItem itemNewParent;
                int index;
                if (itemParent == null)//如果树本身无根节点选中分类
                {

                    index = TreeOfLife.Items.IndexOf(item);


                    if (index<0 || index + updown < 0 || index + updown >= TreeOfLife.Items.Count)
                    {
                        return;
                    }
                    TreeOfLife.Items.Remove(item);
                    TreeOfLife.Items.Insert(index + updown,item);
                }
                else
                {
                    index = itemParent.Items.IndexOf(item);
                 
                    if (index < 0 ||  index + updown < 0 || index + updown >= itemParent.Items.Count)
                    {
                        return;
                    }
                    itemParent.Items.Remove(item);
                    itemParent.Items.Insert(index + updown,item);


                }

                item.IsSELEcted = true;
            }
        }





        private void up_Click(object sender,RoutedEventArgs E)
        {
            treeitemupdown(-1,TreeOfLifE);
        }

        private void down_Click(object sender,RoutedEventArgs E)
        {
            treeitemupdown(1,TreeOfLifE);
        }
    }
}

大佬总结

以上是大佬教程为你收集整理的silverlight treeview 节点顺序实例全部内容,希望文章能够帮你解决silverlight treeview 节点顺序实例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。