一个vs2015 WPF treeview的例子
1、首先在窗口中拖入一个treeview控件,命名为TreeAddressSpace。
2、在窗口初始化函数中添加根节点,根节点名称为TreeRootNode:
public MainWindow()
{
InitializeComponent();
TreeRootNode = new TreeViewItem();
TreeRootNode.Header = "UA Server Address Space";
TreeRootNode.FontSize = 15;
TreeAddressSpace.Items.Add(TreeRootNode);
TreeRootNode.ToolTip = i.ToString();
i++;
}
3、界面上选择控件,在属性窗口添加事件节点选择事件,内容为当点击节点时,如果没有下一级,则增加下一级:
private void TreeAddressSpace_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem treeValue = (TreeViewItem)TreeAddressSpace.SelectedItem;
if(treeValue.HasItems)
{
}
else if(treeValue.ToolTip.ToString() == "1")
{
TreeViewItem treeViewItemIntance = new TreeViewItem();
funcTreeViewItemAdd(TreeRootNode, treeViewItemIntance, "第" + i.ToString() + "级");
}
else
{
TreeViewItem treeViewItemIntance = new TreeViewItem();
funcTreeViewItemAdd(treeValue, treeViewItemIntance, "第" + i.ToString() + "级");
}
}
4、完整代码如下:
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
TreeViewItem TreeRootNode;
public MainWindow()
{
InitializeComponent();
TreeRootNode = new TreeViewItem();
TreeRootNode.Header = "UA Server Address Space";
TreeRootNode.FontSize = 15;
TreeAddressSpace.Items.Add(TreeRootNode);
TreeRootNode.ToolTip = i.ToString();
i++;
}
int i = 0;
private void funcTreeViewItemAdd(TreeViewItem fatherTreeItem, TreeViewItem sonTreeItem, string SonHeader)
{
sonTreeItem.Header = SonHeader;
sonTreeItem.FontSize = 15;
fatherTreeItem.Items.Add(sonTreeItem);
i++;
sonTreeItem.ToolTip = i.ToString();
}
private void TreeAddressSpace_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem treeValue = (TreeViewItem)TreeAddressSpace.SelectedItem;
if(treeValue.HasItems)
{
}
else if(treeValue.ToolTip.ToString() == "1")
{
TreeViewItem treeViewItemIntance = new TreeViewItem();
funcTreeViewItemAdd(TreeRootNode, treeViewItemIntance, "第" + i.ToString() + "级");
}
else
{
TreeViewItem treeViewItemIntance = new TreeViewItem();
funcTreeViewItemAdd(treeValue, treeViewItemIntance, "第" + i.ToString() + "级");
}
}
5、效果如图: