.NET обновление Listview

У меня есть следующий код, который в основном принимает значения от базы данных и заполняет listview.

using (IDataReader reader = cmd.ExecuteReader())
{                    
    lvwMyList.Items.Clear();
    while (reader.Read())
    {
        ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
        lvi.SubItems.Add(reader["Value2"].ToString());                    
    }
}

Проблема, которую я имею, состоит в том, что это неоднократно выполняется в коротких интервалах (каждую секунду) и приводит к объектам в listview, постоянно исчезающем и вновь появляющемся. Там некоторый путь состоит в том, чтобы мешать listview обновиться, пока он не сделан с обновлениями? Что-то как ниже:

using (IDataReader reader = cmd.ExecuteReader())
{                    
    lvwMyList.Items.Freeze(); // Stop the listview updating
    lvwMyList.Items.Clear();
    while (reader.Read())
    {
        ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
        lvi.SubItems.Add(reader["Value2"].ToString());                    
    }
    lvwMyList.Items.UnFreeze(); // Refresh the listview
}
5
задан Henk Holterman 21 July 2010 в 12:26
поделиться