Как хранить элементы 3 ListView в классе - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть 3 ListView, которые заполняются следующим образом (ну, это может быть что угодно, listview - просто пример):

это первый список:

LIST1     LIST2     LIST3
A1         
B1
C1

Если я нажму 'A1', list2 получит несколько предметов:

LIST1     LIST2     LIST3
A1         A2
B1         B2
C1         C2
           D2
           E2

То же самое происходит, когда я нажимаю на элемент в списке list2, затем list3 получает некоторые элементы. На этот раз я нажимаю A2:

LIST1     LIST2     LIST3
A1         A2       A3
B1         B2       B3
C1         C2       
           D2       
           E2

Итак, идея в том, как создать объект (класс), который будет содержать все данные списка просмотра?

Если бы было только 2, я бы думал так:

public class StoreData
{
   public string ListOne {get;set;}
   public List<string> ListTwo = new List<string>();

   public AddToLostTwo(string text)
   {
      ListTwo.Add(text)
   }
}

И я мог бы сделать во время выполнения:

foreach(string str in ListOne)
{
   List<StoreData> datas = new List<StoreData>();
   StoreData data = new StoreData();

   data.ListOne = str;

   foreach(string str2 in ListTwo)
   {
      data.AddToListTwo(str2);
   }
}

Итак, мой вопрос, каков наилучший способ сделать это в c # для более чем 2 списка? Обратите внимание, что я хочу позже распечатать на бумаге что-то вроде этого:

DUMP LISTS
----------
NAME      VALUE      VALUE
A1         A2        A3
                     B3

A1         B2        D3
                     E3

Пожалуйста, дайте мне знать, если я не достаточно ясен!

Ответы [ 2 ]

1 голос
/ 14 ноября 2011
public class StoreData
{
   public string ItemName {get;set;}
   public List<StoreData> ChildList = new List<StoreData>();

   public AddToChilds(StoreData data)
   {
      ChildList.Add(data)
   }
}

По моему мнению, использование этой структуры классов позволит вам иметь столько уровней, сколько вы захотите.

1 голос
/ 14 ноября 2011

Тебе не нужен твой собственный класс для этого. Как насчет использования Dictionary как

Dictionary<string, IList<string>> lists = new Dictionary<string, IList<string>>();

Затем вы можете добавить новый список, как

lists.Add("List1");

И добавить элементы в этот список, как

lists["List1"].Add("Item1");
...