WPF中TreeView的展开 (转)

摘要:
http://blog.163.com/qiulei_21/blog/static/35071722201122452818390/我在网上找到了很多信息,但都是迷雾。看了很长一段时间后,我看不懂。今天,在同事的帮助下,我终于成功地充分利用了TreeViewItem的IsExpanded属性。任务:展开树节点,包括所有节点,单击要展开的节点,然后在一个级别展开节点。出发:1.树的建造:<网格>&书信电报;T

http://blog.163.com/qiulei_21/blog/static/35071722201122452818390/

在网上找了很多资料,但是都是云山雾绕的,看了很久看不懂,今天终于在我同事的帮助下搞定了,要充分利用TreeViewItem的IsExpanded属性啊。

任务:树节点的展开,包括全展开,点击节点的展开,某一层节点的展开。

出发:

1.建树:<Grid>
<TreeView HorizontalAlignment="Left" Margin="12,12,0,0" Name="treeView1" VerticalAlignment="Top" />
</Grid>

2.为树写节点类(注意继承类):

public class PropertyNodeItem : TreeViewItem
{
public int Level { get; set; }
public PropertyNodeItem(string name, string DisplayName, int level)
{
this.Level = level;
this.Header = DisplayName;
this.Name = name;
// 在此点下面插入创建对象所需的代码。
}
}

3.为树增加节点:

public void BindTreeView()
{
PropertyNodeItem node1 = new PropertyNodeItem("1","中国",0);
PropertyNodeItem node2 = new PropertyNodeItem("2","北京市",1);
PropertyNodeItem node3 = new PropertyNodeItem("3","吉林省",1);
PropertyNodeItem node4 = new PropertyNodeItem("4","上海市",1);
node1.Items.Add(node2);
node1.Items.Add(node3);
node1.Items.Add(node4);
PropertyNodeItem node5 = new PropertyNodeItem("5","海淀区",2);
PropertyNodeItem node6 = new PropertyNodeItem("6","朝阳区",2);
PropertyNodeItem node7 = new PropertyNodeItem("7","大兴区",2);
node2.Items.Add(node5);
node2.Items.Add(node6);
node2.Items.Add(node7);
PropertyNodeItem node8 = new PropertyNodeItem("8","白山市",2);
PropertyNodeItem node9 = new PropertyNodeItem("9","长春市",2);
node3.Items.Add(node8);
node3.Items.Add(node9);
PropertyNodeItem node10 = new PropertyNodeItem("10","抚松县",3);
PropertyNodeItem node11 = new PropertyNodeItem("11","靖宇县",3);
node8.Items.Add(node10);
node8.Items.Add(node11);
treeView1.Items.Clear();
treeView1.Items.Add(node1);
}

按F5,发现树是出来了,但是未展开,这样的树肯定是影响效果的,那么怎么展开呢,树本身并没有提供展开方法,此时,就该IsExpanded出场了。比如你想要树节点的Level=0的节点展开,只要设node1.IsExpanded = true;那么再F5,就可见效果。举一反三,想让所有的展开,则设置每个父节点的IsExpanded = true即可,又方便,又好理解。

免责声明:文章转载自《WPF中TreeView的展开 (转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android_照相机Camera_调用系统照相机返回data为空账号系统登录流程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF通过DynamicResource实现给界面动态更换皮肤

    在我们的程序中有时候需要去实现动态更换皮肤的效果,从而完成一些个性化的设置,那么我们究竟怎样去实现动态换皮肤的效果呢?那么我们经常用到的就是设置不同的Style,并且在主程序的xaml文件中通过DynamicResource引用这些Style,当我们点击更换皮肤时我们就动态去改变这些Style,从而实现动态去更换皮肤的操作。我们知道当我们使用Sty...

WPF界面开发:DevExpress WPF在GridControl中固定行时处理时刻

DevExpress广泛应用于ECM企业内容管理、 成本管控、进程监督、生产调度,在企业/政务信息化管理中占据一席重要之地。通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能...

[转]Windows8的WPF技术与HTML5的比较

Windows8风格程序支持使用WPF和HTML两种方式进行编程。本人之前曾使用WPF开发过概念版QQ,现在又在使用HTML5。两种技术都略懂,略懂。所以将两者做了个比较。虽然WPF的命运多舛,应用不太广泛,但技术本身还是有很多亮点的。值得我们学习一下,开阔眼界。   严格说WPF与Silverlight都属于.Net技术体系下新一代的界面技术,都使用标...

C# 里TreeView绑定数据库实现分类

view plaincopy to clipboardprint? //从数据库中读取数据 SqlConnectioncon=newSqlConnection("server=127.0.0.1\\sqlexpress;uid=sa;"); con.Open(); con.ChangeDatabase("STggggg");...

WPF绑定属性

1.创建model类 model类要继承接口INotifyPropertyChanged,用于通知客户端属性值已更改 public class StudentModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged;...

delphi treeview添加节点_一片树叶

procedure TForm1.Button1Click(Sender: TObject);varMyTreeNode1, MyTreeNode2: TTreeNode;beginwith TreeView1.Items dobeginClear; { remove any existing nodes }MyTreeNode1 := Add(nil,...