private void ReloadMagnets() { // only one item at a time. ListMagnets.MultiSelect = false; // remove everything ListMagnets.Items.Clear(); // the current list of magnets. var magnets = _magnets.GetMagnets(); // the rules. var rules = new Rules(); // get the categories. ListMagnets.BeginUpdate(); foreach (var magnet in magnets) { // look for the category var category = _categories.FindCategoryById(magnet.Category); // look for the rule. var rule = rules.Find(magnet.Rule); var item = new ListViewItem() { Text = magnet.Name, ToolTipText = magnet.Name, Tag = magnet, SubItems = { rule, (category == null ? "n/a" : category.Name) } }; ListMagnets.Items.Add(item); } ListMagnets.EndUpdate(); // do we have anything at all? if (0 == magnets.Count) { DisableButtons(); } else { // just select the first item in the list. ListMagnets.Items[0].Selected = true; ListMagnets.Select(); // enable the buttons. EnableButtons(); } }