private void Search() { var code = txtSearchKey.Text.ToLower(); Func <string, bool> contains = value => !string.IsNullOrEmpty(value) && value.IndexOf(code, StringComparison.OrdinalIgnoreCase) >= 0; var ids = GetCheckedIds(); var filteredSource = DepartmentsAll.FindAll(x => contains(x.Code) || contains(x.Name) || ids.Contains(x.Id)); grdSearch.DataSource = new BindingSource(filteredSource, null); SetCheckState(check: 1, filter: x => ids.Contains(x.Id)); SortGridData(); }
private void Confirm() { grdSearch.EndEdit(); SelectedIds = GetCheckedIds(); if (!SelectedIds.Any()) { SelectedIds = DepartmentsAll.Select(x => x.Id).ToList(); } var count = SelectedIds.Count; SelectedState = (count == DepartmentsAll.Count) ? "すべて" : (count == 1) ? ConvertRowToDepartment(grdSearch.Rows.First(x => IsChecked(x))).Name : "請求部門絞込有"; ParentForm.DialogResult = DialogResult.OK; }