Ejemplo n.º 1
0
 internal void RegisterOptionControl(ColumnFilterControl ctrl)
 {
     if (!Filters.Contains(ctrl))
     {
         ctrl.PropertyChanged += _filterHandler;
         Filters.Add(ctrl);
     }
 }
Ejemplo n.º 2
0
        internal void UpdateColumnOptionControl(ColumnFilterControl columnFilterControl)
        {
            //Since visibility for column contrls is set off the ColumnFilterControl by the base grid, we need to
            //update the ColumnOptionControl since it is a seperate object.
            var ctrl = _optionControls.Where(c => c.FilterColumnInfo != null && columnFilterControl.FilterColumnInfo != null && c.FilterColumnInfo.Column == columnFilterControl.FilterColumnInfo.Column).FirstOrDefault();

            if (ctrl != null)
            {
                ctrl.ResetVisibility();
            }
        }
Ejemplo n.º 3
0
        void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "FilterChanged")
            {
                ColumnFilterControl cf = sender as ColumnFilterControl;

                Predicate <object> predicate = null;
                if (!IsFilterWindow)
                {
                    if (window != null)
                    {
                        predicate = FilterDataViewModel.Instance.FilterPredicate;
                        window.Close();
                    }
                }
                else
                {
                    foreach (var filter in Filters)
                    {
                        if (filter.HasPredicate)
                        {
                            if (predicate == null)
                            {
                                predicate = filter.GeneratePredicate();
                            }
                            else
                            {
                                predicate = predicate.And(filter.GeneratePredicate());
                            }
                        }
                        if (cf.FilterText == null)
                        {
                            if (predicate == null)
                            {
                                predicate = filter.GeneratePredicate();
                            }
                            else
                            {
                                predicate = predicate.And(filter.GeneratePredicate());
                            }
                        }
                    }
                }
                bool canContinue = true;
                var  args        = new CancelableFilterChangedEventArgs(predicate);
                if (BeforeFilterChanged != null && !IsResetting)
                {
                    BeforeFilterChanged(this, args);
                    canContinue = !args.Cancel;
                }
                if (canContinue)
                {
                    ListCollectionView view = CollectionViewSource.GetDefaultView(this.ItemsSource) as ListCollectionView;
                    if (view != null && view.IsEditingItem)
                    {
                        view.CommitEdit();
                    }
                    if (view != null && view.IsAddingNew)
                    {
                        view.CommitNew();
                    }
                    if (CollectionView != null)
                    {
                        try
                        {
                            CollectionView.Filter = predicate;
                        }
                        catch
                        {
                        }

                        int count = 1;
                        ObservableCollection <AllSelectedPropertyChanged> list = new ObservableCollection <AllSelectedPropertyChanged>();

                        foreach (var item in CollectionView)
                        {
                            AllSelectedPropertyChanged selectedModel = item as AllSelectedPropertyChanged;
                            //selectedModel.Num= count++;
                            list.Add(selectedModel);
                        }
                        foreach (var item in list)
                        {
                            if (item == null)
                            {
                                continue;
                            }
                            item.Num = count++;
                        }
                        //if(cf.FilterText!=null&& cf.FilterText.Trim() != "")
                        //{
                        if (list != null && list.Count > 0)
                        {
                            FilterFinshItemsSource = list;

                            if (AfterFilterChanged != null)
                            {
                                AfterFilterChanged(this, new FilterChangedEventArgs(predicate));
                            }
                        }

                        //}
                    }
                }
                else
                {
                    IsResetting = true;
                    var ctrl = sender as ColumnFilterControl;
                    ctrl.ResetControl();
                    IsResetting = false;
                }
            }
        }