protected bool LogEntriesFilter(object obj) { LogEntry entry = obj as LogEntry; if (entry == null) { return(true); } var relevantColums = this.ColumnConfig.Columns.Where(c => !String.IsNullOrWhiteSpace(c.FilterValue)); if (relevantColums.Any()) { foreach (var relevantColumn in relevantColums) { if (!entry.ContainsKey(relevantColumn.EntryKey)) { return(false); } var entryValue = Convert.ToString(entry[relevantColumn.EntryKey], this.culture); int idx = this.culture.CompareInfo.IndexOf(entryValue, relevantColumn.FilterValue, CompareOptions.IgnoreCase); if (idx < 0) { return(false); } } } if (String.IsNullOrWhiteSpace(this.currentSearchText)) { return(true); } foreach (var kvp in entry) { var str = Convert.ToString(kvp.Value); if (str.Contains(this.currentSearchText)) { return(true); } } return(false); }