private void UpdateListFilter(bool preserveSort) { if (_orgSourceList != null) { DataGridSortDescription sort = null; if (preserveSort) sort = DataGridUtil.SaveSorting(cacheList); if (string.IsNullOrEmpty(_filterOnText)) { cacheList.ItemsSource = _orgSourceList; } else { string s = _filterOnText.ToLower(); cacheList.ItemsSource = (from a in _orgSourceList where (a.City!=null && a.City.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || (a.Name!=null && a.Name.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || (a.Country!=null && a.Country.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || (a.State != null && a.State.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || (a.Municipality != null && a.Municipality.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || (a.Owner != null && a.Owner.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0) || a.Code.ToLower().IndexOf(s, StringComparison.OrdinalIgnoreCase) >= 0 select a).ToList(); } if (preserveSort) DataGridUtil.RestoreSorting(sort, cacheList); } }
public void UpdateDataGrid(IEnumerable<Framework.Data.Geocache> list) { _orgSourceList = list; //using (var d = Dispatcher.DisableProcessing()) //if (!_ignoreUpdate) { DataGridSortDescription sort = DataGridUtil.SaveSorting(cacheList); cacheList.ItemsSource = null; if (string.IsNullOrEmpty(_filterOnText)) { cacheList.ItemsSource = list; } else { UpdateListFilter(false); } if (PluginSettings.Instance.EnableAutomaticSorting) { DataGridUtil.RestoreSorting(sort, cacheList); } } _ignoreUpdate = false; }