WPF中TreeView的items一般为TreeViewItem,同时TreeViewItem自身又可以包含新的TreeViewItem,从而形成一棵子树,你想要几级节点就有几级节点了。
C#如下:
TreeView treeView = new TreeView()
//第一级,在treeView上添加
TreeViewItem treeViewItem1 = new TreeViewItem()
treeViewItem1.Header = "第一级"
treeView.Items.Add(treeViewItem1)
//第二级,在treeViewItem1上添加
TreeViewItem treeViewItem2 = new TreeViewItem()
treeViewItem2.Header = "第二级"
treeViewItem1.Items.Add(treeViewItem2)
//第三级,在treeViewItem2上添加
TreeViewItem treeViewItem3 = new TreeViewItem()
treeViewItem3.Header = "第三级"
treeViewItem2.Items.Add(treeViewItem3)
结果图:
采用mvvm设计模式:两个treeview的Itemssource应该绑定各自的如ObservableCollcetion<DataClass>这样的集合。可以在DataClass中新增一个用于表示是否变灰的bool属性。在样式中使用触发器,当bool值为true,就变灰。然后当有个Treeview里面的Item添加到目的地列表中的时候,将该Item种的DataClass的是否变灰属性设置为true即可实现你要的功能。记得DataClass实现接口INotifyPropertyChanged
其他人的回答你完全可以忽略了。因为其他人的回答把wpf程序硬是做成了winform。如果你用别人的方法,你的程序和winform做的,asp.net做的没啥区别了。也没有利用到wpf的特点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)