private void UpdateEventListEx(bool bRestoreSelected) { object[] vSelected = (bRestoreSelected ? UIUtil.GetSelectedItemTags(m_lvEvents) : null); UIScrollInfo s = UIUtil.GetScrollInfo(m_lvEvents, true); List <EcasEvent> lToRemove = new List <EcasEvent>(); m_lvEvents.BeginUpdate(); m_lvEvents.Items.Clear(); foreach (EcasEvent e in m_trigger.EventCollection) { EcasEventType t = Program.EcasPool.FindEvent(e.Type); if (t == null) { Debug.Assert(false); lToRemove.Add(e); continue; } ListViewItem lvi = m_lvEvents.Items.Add(t.Name); lvi.SubItems.Add(EcasUtil.ParametersToString(e, t.Parameters)); lvi.Tag = e; lvi.ImageIndex = (int)t.Icon; } foreach (EcasEvent e in lToRemove) { m_trigger.EventCollection.Remove(e); } if (vSelected != null) { UIUtil.SelectItems(m_lvEvents, vSelected); } UIUtil.Scroll(m_lvEvents, s, true); m_lvEvents.EndUpdate(); }
private void UpdateEventListEx(bool bRestoreSelected) { object[] vSelected = (bRestoreSelected ? UIUtil.GetSelectedItemTags(m_lvEvents) : null); m_lvEvents.Items.Clear(); foreach (EcasEvent e in m_trigger.EventCollection) { EcasEventType t = Program.EcasPool.FindEvent(e.Type); ListViewItem lvi = m_lvEvents.Items.Add(t.Name); lvi.SubItems.Add(EcasUtil.ParametersToString(e, t.Parameters)); lvi.Tag = e; lvi.ImageIndex = (int)t.Icon; } if (vSelected != null) { UIUtil.SelectItems(m_lvEvents, vSelected); } }