示例#1
0
        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();
            }
        }