
现在有个需求,就是把silverlight treevIEw 同级的节点能够通过button 进行向上向下调整
如果有此类需求,就参考吧。
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/Expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:sdk="http://schemas.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 节点顺序实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)