public void AddServices(ServiceItemsDataCollection servicesToAdd) { SuspendLayout(); lvMain.SuspendLayout(); lvMain.BeginUpdate(); try { //bool saveSorted = Sorted; //Sorted = false; foreach (ServiceItemData sd in servicesToAdd) { services.Add(sd); ServiceItemDataContainer sid = new ServiceItemDataContainer(sd); ListViewItem lvi = new ListViewItem(); lvi.Text = sid.Name; lvi.Tag = sid; lvi.ImageKey = sd.ServiceItem.Service.Name; lvi.SubItems.Add(sid.Type); lvi.SubItems.Add(sid.LanguagePair); lvi.SubItems.Add(sid.Subject); lvi.ToolTipText = sid.Name; lvMain.Items.Add(lvi); } //Sorted = saveSorted; lvMain.Focus(); if (lvMain.Items.Count > 0) { lvMain.Items[0].Selected = true; lvMain.Items[0].Focused = true; chName.Width = 200; chType.Width = -1; chLanguagePair.Width = 150; chSubject.Width = -2; } else { if (ServiceItemChangedEvent != null) { ServiceItemChangedEvent(this, new ServiceItemChangedEventArgs(null)); } chName.Width = 200; chType.Width = -2; chLanguagePair.Width = 150; chSubject.Width = -2; } } finally { lvMain.EndUpdate(); lvMain.ResumeLayout(); ResumeLayout(); } }
public void RemoveSelected() { if (lvMain.SelectedItems.Count == 0) { return; } ServiceItemDataContainer sidc = lvMain.SelectedItems[0].Tag as ServiceItemDataContainer; if (sidc == null) { return; } ListViewItem lvi = lvMain.SelectedItems[0]; lvi.Selected = false; lvi.Focused = false; services.Remove(sidc.ServiceItemData); lvMain.Items.Remove(lvi); if (lvMain.Items.Count > 0) { try { //try to avoid unrepeatable bug lvMain.Items[0].Selected = true; lvMain.Items[0].Focused = true; } catch { try { lvMain.Items[0].Selected = true; lvMain.Items[0].Focused = true; } catch { } } } else { if (ServiceItemChangedEvent != null) { ServiceItemChangedEvent(this, new ServiceItemChangedEventArgs(null)); } } }
public void MoveDown() { if (!CanMoveDown) { return; } ListViewItem lvi = lvMain.SelectedItems[0]; lvi.Selected = false; lvi.Focused = false; int idx = lvi.Index; lvMain.Items.RemoveAt(idx); lvMain.Items.Insert(idx + 1, lvi); lvi.Selected = true; lvi.Focused = true; ServiceItemDataContainer sidc = lvi.Tag as ServiceItemDataContainer; services.RemoveAt(idx); services.Insert(idx + 1, sidc.ServiceItemData); }
void LvMainSelectedIndexChanged(object sender, EventArgs e) { if (ServiceItemChangedEvent != null) { if (lvMain.SelectedItems.Count == 0) { tDeselectAll.Enabled = true; } else { ServiceItemDataContainer sidc = lvMain.SelectedItems[0].Tag as ServiceItemDataContainer; if (sidc == null) { tDeselectAll.Enabled = true; } else { tDeselectAll.Enabled = false; ServiceItemChangedEvent(this, new ServiceItemChangedEventArgs(sidc.ServiceItemData)); } } } }
void LoadServices() { SuspendLayout(); lvMain.SuspendLayout(); lvMain.BeginUpdate(); try { bool saveSorted = Sorted; Sorted = false; lvMain.Items.Clear(); if(services == null) { Sorted = saveSorted; return; } foreach(ServiceItemData sd in services) { ServiceItemDataContainer sid = new ServiceItemDataContainer(sd); ListViewItem lvi = new ListViewItem(); lvi.Text = sid.Name; lvi.Tag = sid; lvi.ImageKey = sd.ServiceItem.Service.Name; lvi.SubItems.Add(sid.Type); lvi.SubItems.Add(sid.LanguagePair); lvi.SubItems.Add(sid.Subject); lvi.ToolTipText = sid.Name; lvMain.Items.Add(lvi); } Sorted = saveSorted; lvMain.Focus(); if(lvMain.Items.Count > 0) { lvMain.Items[0].Selected = true; lvMain.Items[0].Focused = true; chName.Width = 200; chType.Width = -1; chLanguagePair.Width = 150; chSubject.Width = -2; } else { if(ServiceItemChangedEvent != null) ServiceItemChangedEvent(this, new ServiceItemChangedEventArgs(null)); chName.Width = 200; chType.Width = -2; chLanguagePair.Width = 150; chSubject.Width = -2; } } finally { lvMain.EndUpdate(); lvMain.ResumeLayout(); ResumeLayout(); } }