2013-03-07 3 views
1

Привет. У меня есть приложение формы Windows. После того, как я что-то сделаю, я хочу разместить обновления в Listview. Больше похоже на файл журнала. Вот мой код:Listview как файл журнала

private void Form1_Load(object sender, EventArgs e) 
{ 
    listView1.View = View.Details; 
    listView1.GridLines = true; 
    listView1.FullRowSelect = true; 

    //Add column header 
    listView1.Columns.Add("Import Status", 100); 
    listView1.Columns.Add("Price", 70); 
    listView1.Columns.Add("Date", 70); 

    //Add items in the listview 
    string[] arr = new string[4]; 
    ListViewItem itm; 

    //Add first item 
    arr[0] = "product_1"; 
    arr[1] = "100"; 
    arr[2] = "10"; 
    itm = new ListViewItem(arr); 
    listView1.Items.Add(itm); 

    //Add second item 
    arr[0] = "product_2"; 
    arr[1] = "200"; 
    arr[2] = "20"; 
    itm = new ListViewItem(arr); 
    listView1.Items.Add(itm); 
} 

Как я могу добавить элементы в ListView без «» жестко прописывать их? Какие-либо предложения? Как я могу сделать это каждый Button.Click, он может добавлять строки с некоторыми данными в нем?

+0

Вы можете получить данные из базы данных ..? –

+0

нет, он не содержит никакой базы данных. – user1954418

+0

ok - возможно, файл XML? Данные не «просто появляются» - какие данные вы хотите добавить? –

ответ

2
How can I Add items to the ListView without 'hardcoding' them? 

Код

private void Form1_Load(object sender, EventArgs e) 
    { 
     listView1.View = View.Details; 
     listView1.GridLines = true; 
     listView1.FullRowSelect = true; 
     listView1.Columns.Add("Import Status"); 
     listView1.Columns.Add("Price"); 
     listView1.Columns.Add("Date");  
    } 

    private void btnAdd_Click(object sender, EventArgs e) 
    { 
     ListViewItem LVI = new ListViewItem(txtstatus.Text); 
     LVI.SubItems.Add(txtPrice.Text); 
     LVI.SubItems.Add(txtDate.Text); 
     listView1.Items.Add(LVI); 
    } 

UI

enter image description here

+0

спасибо! плохо попробуйте это! – user1954418

+0

Могут ли строки сохраняться?потому что после закрытия программы строки не пройдены – user1954418

+0

Если вам нужны постоянные данные, просто сохраните данные (файлы, БД) перед закрытием приложения, а затем извлеките их в Form_Load. –

1

Globalize ваши эти две строки, чтобы ваш доступ в каждом методе вашего класса:

string[] arr = new string[4]; 
ListViewItem itm; 

Теперь создайте button click событие и поместить ваш код в нем:

private void button1_Click(object sender, EventArgs e) 
     { 
      arr[0] = "product_2"; //you can get these values from textboxes if you are taking input from user 
      arr[1] = "200"; 
      arr[2] = "20"; 
      itm = new ListViewItem(arr); 
      listView1.Items.Add(itm); 
     } 
1

привет там :) вы можете использовать datagridview вместо элемента управления listview.

все, что вам нужно сделать, это определить собственный набор данных или добавить элемент управления набором данных в ваш проект. Вам просто нужно добавить ваши три столбца в новый datatable. затем:

  • добавить, что набор данных в форму, он будет отображаться в виде кода
  • установить источник данных в DataGridView к добавленным набору данных

теперь вы можете добавлять новые строк данных в datatable, и они автоматически появятся в datagridview. хорошо, вам нужно определить один раз в таблице, и разработчик создаст вам настраиваемый тип datarow, что вы можете использовать.

мой опыт сказал мне, что этот способ более удобен, чем использование listview. главное, и LINQ над данным, если вы хотите обрабатывать данные оттуда в другом контексте . я использовал ListView раньше, но так как DataGridView в сочетании с набором данных, все лучше;)

задушевно, ceth

+0

Могу ли я использовать представление сетки данных без подключения к SQL? – user1954418

+0

уверен, что вы можете :) dataset/datview как datasource в datagridview - это просто виртуальная база данных в вашей памяти и может обрабатываться LIKE в реальной базе данных или просто в коллекции datarows в datatable – ceth

+0

Могут ли строки сохраняться? потому что после закрытия программы строки ушли – user1954418

Смежные вопросы