WPF看了很长时间了,但一直没怎么动手实践,正好任务需要,扩展了WPF的标准TreeView控件,并作为基础控件,支持下面的功能:
- 数据绑定
- 拖拽
下载地址: https://download.youkuaiyun.com/download/jfyy/11107213
控件做好后的使用方法:
- 先定义TreeNode的Model,Model用来定义TreeNode的状态。
public class TreeNode : ViewModelBase, IDargDropMgr
{
private List<TreeNode> children;
public TreeNode(string name)
{
Name = name;
Menu = new ContextMenu();
Menu.Items.Add(new MenuItem() { Header = "Test" });
CanDrop = true;
}
public List<TreeNode> Children
{
get
{
return children;
}
set
{
children = value;
OnPropertyChanged("Children");
}
}
public string Name
{
get;
set;
}
private ContextMenu menu;
public ContextMenu Menu
{
get { return menu; }
set { menu = value; OnPropertyChanged("Menu"); }
}
使用派生TreeView的MyTreeView,使用时,创建好Model后,用下面语句就能完成TreeView的创建。
<local:MyTreeView x:Name="MainTreeView" ItemsSource="{Binding TreeNodes}">
具体实现方法:
1. 在网上找到下面的代码,完成TreeNode节点名字和Image的bind。好像必须使用Hierarchical