ListViewItem item1 = new ListViewItem(((EstoreGeneric.Ricette)listamaterial i[i]).ID.ToString());
item1.SubItems.Add(((EstoreGeneric.Ricette)listama teriali[i]).Nome.ToString());
item1.SubItems.Add(((EstoreGeneric.Ricette)listama teriali[i]).Note.ToString());

listView1.Items.AddRange(new ListViewItem[] { item1 });
provato dopo il for a fare un refresh()?

in debug sei sicuro che faccia tutti i cicli giusti?
Gli oggetti item sono valorizzati in modo corretto?