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