예제 #1
0
        private void OnColumnFiltering(GridViewFilteringEventArgs args)
        {
            var vm = DataContext as SelectCrossRefViewModel;
            if (vm == null || vm.IsBusy || vm.IsPopulatingNewPageItems)
                return;

            if (args.Added != null && args.Added.Any())
            {
                var descriptor = args.Added.First() as ColumnFilterDescriptor;
                if (descriptor != null)
                    _filterValues[descriptor.Member] = (string)descriptor.Value;
            }

            if (args.Removed != null && args.Removed.Any())
            {
                var descriptor = args.Removed.First() as ColumnFilterDescriptor;
                if (descriptor != null)
                {
                    if (_filterValues.ContainsKey(descriptor.Member))
                        _filterValues.Remove(descriptor.Member);
                }
            }

            ApplyFilter(vm);
        }
        public virtual void ControlFiltering(Object sender, GridViewFilteringEventArgs e)
        {
            UIControlFilterList = ((GridViewDataControl)sender).FilterDescriptors;

            if (ObservedFieldFilters.Count > UIControlFilterList.Count)
            {
                IList <TelerikFieldFilterDescriptor> toDelete = new List <TelerikFieldFilterDescriptor>();
                foreach (TelerikFieldFilterDescriptor fieldFilter in ObservedFieldFilters)
                {
                    if (!fieldFilter.IsActive)
                    {
                        toDelete.Add(fieldFilter);
                    }
                }
                foreach (TelerikFieldFilterDescriptor fieldFilter in toDelete)
                {
                    if (ObservedFieldFilters.Remove(fieldFilter))
                    {
                        fieldFilter.PropertyChanged -= fieldFilterHasChangedDelegate;
                    }
                }
            }

            // If only the logical operator of a FieldFilter is changed, then no Filtering event is fired
            // => Changes in the FieldFilters must be tracked in addition
            if (e.ColumnFilterDescriptor.IsActive && e.ColumnFilterDescriptor.FieldFilter != null)
            {
                if (!ObservedFieldFilters.Contains(e.ColumnFilterDescriptor.FieldFilter))
                {
                    ObservedFieldFilters.Add(e.ColumnFilterDescriptor.FieldFilter);
                    e.ColumnFilterDescriptor.FieldFilter.PropertyChanged += fieldFilterHasChangedDelegate;
                }
            }

            AmbethIFilterDescriptor tempDescriptor = FilterDescriptorConverter.ConvertTelerikFilterCollection(UIControlFilterList);

            if (e.ColumnFilterDescriptor.IsActive == false && e.Added.Count <TelerikIFilterDescriptor>() > 0)
            {
                AmbethFilterDescriptor = this.FilterDescriptorConverter.AddTelerikFilterDescriptor(tempDescriptor, ((IList <TelerikIFilterDescriptor>)e.Added)[0]);
                return;
            }
            AmbethFilterDescriptor = tempDescriptor;
        }
예제 #3
0
        private void Filtering(object sender, GridViewFilteringEventArgs e)
        {
            e.Cancel = true;
            var column = _grid.Columns[e.ColumnFilterDescriptor.Column.UniqueName];
            if (column == null) return;

            var filterableList = _grid.DataContext as IFilterableList;
            if (filterableList == null) return;

            if (e.Added == null || !e.Added.Any()) return;

            foreach (var f in e.Added.ToList().Select(filter => (filter as Telerik.Windows.Data.FilterDescriptor)).Where(f => f != null))
                filterableList.AddFilter(new FilterDescriptor(f.Member, f.Operator.ToFilterOperator(), f.Value));

            filterableList.ApplyFiter();
        }
 private void gridView_Filtering(object sender, GridViewFilteringEventArgs e)
 {
 }