private int GetNextIndex(Func <List <int>, int, int> func) { List <int> indexes; switch (cbSearchCriterion.SelectedIndex) { case 0: indexes = Collection.MakeListOfIndexes(tbFind.Text, lvLibItems, 0); break; case 1: indexes = Collection.MakeListOfIndexes( tbFind.Text, lvLibItems.Items.Cast <ListViewItem>().Select(item => ((LibItem)item.Tag).Abstract).ToList() ); break; case 2: indexes = Collection.MakeListOfIndexes(tbFind.Text, lvLibItems, 1); break; default: return(0); } labelFindedItemsCount.Text = indexes.Count.ToString(); return(finder.GetIndex(indexes, func)); }
private void btPrevFindedLibItem_Click(object sender, EventArgs e) => Collection.SelectItem(lvLibItems, GetNextIndex(Finder.Functions.Prev));