8,735
社区成员
发帖
与我相关
我的任务
分享
public ControlTree()
{
InitializeComponent();
}
public partial class ControlTree : UserControl
{
DataTable dt_;
public ControlTree(DataTable ParamDT)
{
InitializeComponent();
LoadedTree(ParamDT);
}
public DataTable DTSource
{
set
{
dt_ = value;
}
get
{
return dt_;
}
}
public string Name
{
get{ return this.Name;}
set { this.Name = value; }
}
private void LoadedTree(DataTable ParamDT)
{
if (treeView1.Items.Count > 0)
{
return;
}
//定义树模版
HierarchicalDataTemplate tpl = new HierarchicalDataTemplate(typeof(TreeNode));
tpl.ItemsSource = new Binding("SubNode");
FrameworkElementFactory factoryTextBlock = new FrameworkElementFactory(typeof(TextBlock));
factoryTextBlock.SetBinding(TextBlock.TextProperty, new Binding("Name"));
tpl.VisualTree = factoryTextBlock;
TreeNode rootRsc = new TreeNode("", "", "", ParamDT);
foreach (TreeNode temp in rootRsc.SubNode)
{
TreeViewItem rootItem = new TreeViewItem();
rootItem.Header = temp.Name;
rootItem.ItemsSource = temp.SubNode;
rootItem.ItemTemplate = tpl;
rootItem.IsExpanded = true;
treeView1.Items.Add(rootItem);
}
}
}
MainWindow.xma;:
<Window x:Class="WpfTree.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tree="clr-namespace:WpfTree"
Title="MainWindow" Height="350" Width="525">
<Grid Name="grid1">
<tree:ControlTree Name="tree1"></tree:ControlTree>
</Grid>
</Window>
tree1后台找不到,改成x:Name就报问题中的错误了