1 如果 TreeView 的 Items 绑定了一个源集合, 那麼对集合增减, wpf 会自动处理, 更新显示(如果集合实现了INotifyCollectionChanged 介面的话)
例如 TreeView 的 Items 绑定了一个 ObservableCollection<string> 的集合, 则 对这个集合使用 Add/Remove 等方法时, wpf 会自动更新 TreeView 的显示
2 如果 TreeView 没有绑定集合, 则 它的 Items 可以添加任何元素 所添加的元素自动以 TreeViewItem 作为容器来承载, 根据相应的 DataTemplate 或者默认的方式,显示到 TreeView 中
eg 下面是一个没有任何 Item 的 TreeView, 你可以在代码中动态增减:
<TreeView x:Name="myTV">
--------------
先增加一些节点:
myTVItemsAdd("I'm the rootNode"); // 可以是任何类型, 这里是 string
DockPanel dp= new DockPanel();
TextBlock tb = new TextBlock();
tbText = "I'm the child node";
tbVerticalAlignment = VerticalAlignmentCenter;
Image img = new Image();
imgStretch= StretchNone;
imgSource= new BitmapImage(new Uri(@"C:\wpfbmp", UriKindAbsolute));
dpChildrenAdd(img);
dpChildrenAdd(tb);
(myTVItemContainerGeneratorContainerFromIndex(0) as TreeViewItem)ItemsAdd(dp);
--------------------
然后修改这些节点:
TextBox t = new TextBox();
tText = myTVItems[0] as string;
myTVItems[0] = t;
((((myTVItemContainerGeneratorContainerFromIndex(0) as TreeViewItem)Items[0]) as DockPanel)Children[1] as TextBlock)Text = "an image sits on my left side";
在xaml里设置TreeViewItem的style,里面绑定后台的selected属性。参考
>
WPF中的TreeView是没多选功能的,需要对他进行扩展
这是功能的地址:网页链接
比较遗憾的是选中的项数据目前拿不到,我正在更改,望采纳,谢谢
在TreeView的AfterSelect事件中写代码即可。如下:
private void courseDetailTrv_AfterSelect(object sender, TreeViewEventArgs e)
{
string str = eNodeText ; // 这个语句可以取到节点的text
}
以上就是关于WPF 中的treeview的相关 *** 作全部的内容,包括:WPF 中的treeview的相关 *** 作、WPF中,通过XML文件动态生成TreeView,请问怎么才能知道运行期间选中了哪个节点、WPF怎样树节点把树节点设置为多选,以及怎么取值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)