Добавление пользовательских объектов класса в список в c # - PullRequest
3 голосов
/ 27 апреля 2009

у меня есть класс, который выглядит так

public class Process_Items
{
    String Process_Name;
    int Process_ID;
    //String Process_Title;
    public string ProcessName
    {
        get { return Process_Name; }
        set { this.Process_Name = value; }
    }
    public int ProcessID
    {
        get { return Process_ID; }
        set { this.Process_ID = value; }
    }
}

Теперь я хочу создать массив Process_Items [] и отобразить все элементы в многостолбцовом списке. Таким образом, первый столбец должен иметь processName, а второй должен иметь processID. Как я могу добиться этого в C # 2.0?

Ответы [ 3 ]

9 голосов
/ 27 апреля 2009

Вы должны использовать элемент управления ListView и добавить два столбца (ListBox имеет только один столбец)

Process_Items[] items = new Process_Items[] // Initialize array

foreach(Process_Items p in items) {
    listView.Items.Add(p.ProcessName).Subitems.Add(p.ProcessID.ToString());
}
4 голосов
/ 27 апреля 2009

В списке отображается один элемент ListItem (строка), отображаемый для пользователя.

Чтобы вы могли переопределить ToString () как

public override string ToString()
{
    return string.Format("{0} [ProcID: {1}]", this.Process_Name , this.ProcessID);
}

Если это приложение для winforms, взгляните на элемент управления ListView или DataGridView

1 голос
/ 27 апреля 2009

Какой контроль вы используете для списка? Если вы используете ListView, то вы можете сделать это следующим образом (при условии, что instance является Process_Items - что, кстати, странное имя для экземпляра класса IMO):

listView1.Items.Add(instance.ProcessName).SubItems.Add(instance.ProcessID.ToString());
...