求助,WPF中关于treeview中的DataType="{x:Type local:Node}报错问题
初学wpf,自己写了个wpf玩,但是对treeview绑定数据总有疑问,结合了自己往上找了个案例,前端内容如下:
前端代码:
<TreeView Name="TreeView_NodeList">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Node}" ItemsSource="{Binding Nodes,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<StackPanel Orientation="Horizontal" Margin="0,2,0,2">
<TextBlock Text="{Binding NodeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ToolTip="{Binding NodeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
后台代码:
namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public List<Node> nodeList { get; set; }
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
MessageBox.Show("欢迎光临!", "信息提示", MessageBoxButton.OK);
List<ItemsDetails> buyItems = new BuyItemManager().SeLectBuyItem();
dg_Items.ItemsSource = buyItems;
//LoadGroupTree();
nodeList = GetNodeList();
this.TreeView_NodeList.ItemsSource = nodeList;
}
private List<Node> GetNodeList()
{
Node leafOneNode = new Node();
leafOneNode.NodeName = "叶子节点一";
leafOneNode.NodeContent = "我是叶子节点一";
leafOneNode.NodeType = NodeType.LeafNode;
leafOneNode.Nodes = new List<Node>();
Node leafTwoNode = new Node();
leafTwoNode.NodeName = "叶子节点二";
leafTwoNode.NodeContent = "我是叶子节点二";
leafTwoNode.NodeType = NodeType.LeafNode;
leafTwoNode.Nodes = new List<Node>();
Node leafThreeNode = new Node();
leafThreeNode.NodeName = "叶子节点三";
leafThreeNode.NodeContent = "我是叶子节点三";
leafThreeNode.NodeType = NodeType.LeafNode;
leafThreeNode.Nodes = new List<Node>();
Node secondLevelNode = new Node();
secondLevelNode.NodeName = "二级节点";
secondLevelNode.NodeContent = "我是二级节点";
secondLevelNode.NodeType = NodeType.StructureNode;
secondLevelNode.Nodes = new List<Node>() { leafOneNode, leafTwoNode, leafThreeNode };
Node firstLevelNode = new Node();
firstLevelNode.NodeName = "一级节点";
firstLevelNode.NodeContent = "我是一级节点";
firstLevelNode.NodeType = NodeType.StructureNode;
firstLevelNode.Nodes = new List<Node>() { secondLevelNode };
return new List<Node>()
{
new Node(){NodeName="根节点",NodeContent="我是根节点",NodeType=NodeType.RootNode,Nodes=new List<Node>(){firstLevelNode}}
};
}
}
模型类:
namespace WpfApplication1
{
public class Node
{
public Node()
{
this.NodeId = Guid.NewGuid().ToString();
this.IsDeleted = false;
this.Nodes = new List<Node>();
}
/// <summary>
/// 节点ID
/// </summary>
public string NodeId { get; set; }
/// <summary>
/// 节点名称
/// </summary>
public string NodeName { get; set; }
/// <summary>
/// 节点携带的内容
/// </summary>
public string NodeContent { get; set; }
/// <summary>
/// 被删除
/// </summary>
public bool IsDeleted { get; set; }
/// <summary>
/// 节点类型
/// </summary>
public NodeType NodeType { get; set; }
/// <summary>
/// 子节点集合
/// </summary>
public List<Node> Nodes { get; set; }
}
public enum NodeType
{
RootNode,//根节点
LeafNode,//叶子节点
StructureNode//结构节点,仅起到组织配置文件结构的作用,不参与修改
}
}
出错:local是未声明的命名空间。未找到类型local:Node
求问这个错误如何解决呢?万分感谢!!