Habanero.Faces.Win.GenericGridFilterControlWin.FilterGrid C# (CSharp) Метод

FilterGrid() приватный Метод

private FilterGrid ( string filter ) : void
filter string
Результат void
        private void FilterGrid(string filter)
        {
            var wingrid = this.Grid as DataGridView;
            if (wingrid == null) return;
            if (wingrid.Rows.Count == 0) return;
            wingrid.CurrentCell = null;
            var parts = filter.Split(new char[] { ' ' });

            this.SetAlternatingStyle(wingrid, null);

            var somethingHidden = false;
            var somethingVisible = false;
            var searchColumns = GetSearchColumnIndexes(wingrid);
            var searchCells = new List<string>();
            var subTable = this._originalView.Table.Clone();
            foreach (DataRow row in this._originalView.Table.Rows)
            {
                this.DoEvents();
                if (this._cancelCurrentFilter)
                    break;
                var hits = 0;
                foreach (var part in parts)
                {
                    searchCells.Clear();
                    foreach (var i in searchColumns)
                    {
                        var cell = row[i];
                        var v = cell as String;
                        if (v == null || v.Length == 0) continue;
                        searchCells.Add(v);
                    }
                    var searchRow = String.Join("\n", searchCells);
                    if (searchRow.ToLower().Contains(part))
                        hits++;
                }
                if (hits == parts.Length)
                {
                    subTable.ImportRow(row);
                    somethingVisible = true;
                }
                else
                    somethingHidden = true;
            }
            this.SetNewDataSource(subTable, wingrid);
            this.SetupFilteredAlternatingRowColors(wingrid, somethingVisible, somethingHidden);
        }