I did the whole code. There are now 2 forms. 1st one is like yours, and 2nd one is meant to add items.
Ok, here is a whole code:
//Form1:
public partial class Form1 : Form
{
List<MyClass> list;
public Form1()
{
InitializeComponent();
//creating listView:
listView1.Columns.Add("Item", 80, HorizontalAlignment.Left);
listView1.Columns.Add("SubItem 1", 80, HorizontalAlignment.Left);
listView1.Columns.Add("SubItem 2", -2, HorizontalAlignment.Center);
listView1.View = View.Details;
listView1.FullRowSelect = true;
//create a new instance of a list<T>:
list = new List<MyClass>();
//populate list<T> (example code):
AddingRows();
//populating listView:
ShowDataInListView();
//creating comobBox`s event:
this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
//some other event for adding and removing:
this.buttonAdd.Click += new EventHandler(buttonAdd_Click);
this.buttonRemove.Click += new EventHandler(buttonRemove_Click);
}
//EXAMPE CODE:
private void AddingRows()
{
//some example population wtih 6 letters:
string letters = "ABACADC";
comboBox1.Items.Add("Show all");
for (int i = 0; i < letters.Length; i++)
{
if (!comboBox1.Items.Contains(letters[i].ToString()))
comboBox1.Items.Add(letters[i].ToString());
MyClass mc = new MyClass();
mc.Item = "Item " + (i + 1);
mc.SubItem1 = "SubItem " + (i + 1);
mc.SubItem2 = letters[i].ToString();
list.Add(mc);
}
}
//YOUR CODE TO ADD ROWS LATER ON:
public void AddingRowsToList(string[] data)
{
//adding to list<T>:
MyClass mc = new MyClass();
mc.Item = data[0];
mc.SubItem1 = data[1];
mc.SubItem2 = data[2];
list.Add(mc);
//adding to comboBox if not exsits yet:
if (!comboBox1.Items.Contains(data[2]))
comboBox1.Items.Add(data[2]);
//showing new data:
ShowDataInListView();
}
private void ShowDataInListView()
{
listView1.Items.Clear();
foreach (MyClass mc in list)
{
ListViewItem lvi = new ListViewItem(mc.Item);
lvi.SubItems.Add(mc.SubItem1);
lvi.SubItems.Add(mc.SubItem2);
listView1.Items.Add(lvi);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string comboSelection = (string)comboBox1.SelectedItem;
listView1.Items.Clear();
foreach (MyClass mc in list)
{
if (comboSelection …