0

我想像这样在 Treeview 中显示数据:(*1)

 - There are 2 tickets 
   -- Opening problem category with ID 5685
   -- Closing problem category with ID 5687
 - There are 3 projects
   -- WPF project with ID 1234
   -- C# project with ID 12345
   -- ASP.NET project with ID 12

Tickets,Projects类继承自EntityBase

public class EntityBase
    {
        public int EntityID { get; set; }
        public static EntityCollection entityCollection { get; set; }
        public EntityBase() 
        {
            entityCollection = new EntityCollection();
        }
    }

EntityCollection 有私有List<EntityBase>数据。

为了制作项目或票证的父节点,我创建了TreeViewParentNode

    public class TreeViewParentNode
        {
            public string ParentName { get; set; }
            public List<EntityBase> ParentItems;
            public int ParentCount;
            public TreeViewParentNode(string ParentName) 
            {
                ParentCount = 0;
                this.ParentName = ParentName;
                ParentItems = new List<EntityBase>();
            }
 }

我创建了一个集合来在Treeview ObservableCollection<TreeViewParentNode> 窗口的构造函数中显示数据:

 public ReminderExtendedWindow()
        {
            InitializeComponent();
            this.ResizeMode = ResizeMode.NoResize;
            List<TreeViewParentNode> Nodes = new List<TreeViewParentNode>();
            foreach (EntityBase EntityItem in EntityBase.entityCollection)
            {
               TreeViewParentNode findnode = Nodes.Find(
                   delegate(TreeViewParentNode node) 
                   { 
                       return node.ParentName == EntityItem.GetType().Name; 
                   }
                   );
               if (findnode == null)
               {
                   TreeViewParentNode NewParentNode = new TreeViewParentNode(EntityItem.GetType().Name);
                   NewParentNode.ParentItems.Add(EntityItem);
                   NewParentNode.ParentCount++;
                   Nodes.Add(NewParentNode);
               }
               else
               {
                   findnode.ParentItems.Add(EntityItem);
                   findnode.ParentCount++;
               }
            }
            Coll = new ObservableCollection<TreeViewParentNode>(Nodes);
            DataContext = this;

        }   

树视图XAML代码

<TreeView Height="500" Width="375" Background="Transparent" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,50,0,0" 
               BorderThickness="0,0,0,0" x:Name="EntityTree" ItemsSource="{Binding Coll}">

我应该怎么做才能显示上面(* 1)中显示的数据?

4

0 回答 0