private bool IncludeInFilter(PerforceUserRecord User, string[] FilterWords) { foreach (string FilterWord in FilterWords) { if (User.Name.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1 && User.FullName.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1 && User.Email.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1) { return(false); } } return(true); }
private void PopulateList() { UserListView.BeginUpdate(); UserListView.Items.Clear(); int SelectedItemIndex = -1; string[] Filter = FilterTextBox.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); for (int Idx = 0; Idx < Users.Count; Idx++) { PerforceUserRecord User = Users[Idx]; if (IncludeInFilter(User, Filter)) { ListViewItem Item = new ListViewItem(User.Name); Item.SubItems.Add(new ListViewItem.ListViewSubItem(Item, User.FullName)); Item.SubItems.Add(new ListViewItem.ListViewSubItem(Item, User.Email)); Item.Tag = (int)Idx; UserListView.Items.Add(Item); if (SelectedItemIndex == -1 && Idx >= SelectedUserIndex) { SelectedItemIndex = UserListView.Items.Count - 1; Item.Selected = true; } } } if (SelectedItemIndex == -1 && UserListView.Items.Count > 0) { SelectedItemIndex = UserListView.Items.Count - 1; UserListView.Items[SelectedItemIndex].Selected = true; } if (SelectedItemIndex != -1) { UserListView.EnsureVisible(SelectedItemIndex); } UserListView.EndUpdate(); UpdateOkButton(); }