Exemple #1
0
        public void LoadItems <T>(IEnumerable <T> items, TreeListViewItemCollection Items, Func <T, string> getId, Func <T, string> getParentId, Func <T, string> getDisplayName, Func <T, int> getImageIndex, List <string> lstPropertyName)
        {
            //List<string> lstPropertyName = new List<string>();
            Items.Clear();
            dictItems.Clear();

            foreach (var item in items)
            {
                var id          = getId(item);
                var displayName = getDisplayName(item);
                var imageIndex  = -1;
                if (getImageIndex != null)
                {
                    imageIndex = getImageIndex(item);
                }

                var treeListViewItem = new TreeListViewItem();
                treeListViewItem.Name = id;
                treeListViewItem.Text = displayName;
                treeListViewItem.Tag  = item;
                if (imageIndex >= 0)
                {
                    treeListViewItem.ImageIndex = imageIndex;
                }

                foreach (string propertyName in lstPropertyName)
                {
                    object obj = PublicMethods.GetPropertyValue(item, propertyName);;
                    string str = "";
                    if (obj != null)
                    {
                        str = obj.ToString();
                    }
                    treeListViewItem.SubItems.Add(str);
                }

                dictItems.Add(id, treeListViewItem);
            }

            foreach (var id in dictItems.Keys)
            {
                var item     = GetItem(id);
                var obj      = (T)item.Tag;
                var parentId = getParentId(obj);

                if (parentId != null)
                {
                    var parentNode = GetItem(parentId.ToString());
                    parentNode.Items.Add(item);
                }
                else
                {
                    Items.Add(item);
                }
            }
        }
Exemple #2
0
 public void LoadItems <T, K>(IEnumerable <T> items, TreeListViewItemCollection Items, Func <T, string> getId, Func <T, string> getParentId, Func <T, string> getDisplayName, Dictionary <string, string> dictPropertyName, Func <T, int> getImageIndex, Func <T, Color> getForeColor) where K : class
 {
     Items.Clear();
     dictItems.Clear();
     LoadPartItems <T, K>(items, Items, getId, getParentId, getDisplayName, dictPropertyName, getImageIndex, getForeColor);
 }