using DevExpress.ExpressApp; using DevExpress.ExpressApp.Actions; using DevExpress.ExpressApp.Editors; using DevExpress.Persistent.Base; namespace SISBusiness.Module { public partial class CriteriaController_VC : ViewController { private SingleChoiceAction filteringCriterionAction; public CriteriaController_VC() { filteringCriterionAction = new SingleChoiceAction( this, "FilteringCriterion", PredefinedCategory.Filters); filteringCriterionAction.Execute += new DevExpress.ExpressApp.Actions.SingleChoiceActionExecuteEventHandler(this.FilteringCriterionAction_Execute); TargetViewType = ViewType.ListView; } protected override void OnActivated() { filteringCriterionAction.Items.Clear(); foreach (FilteringCriterion criterion in ObjectSpace.GetObjects()) if (criterion.ObjectType.IsAssignableFrom(View.ObjectTypeInfo.Type)) { filteringCriterionAction.Items.Add( new ChoiceActionItem(criterion.Description, criterion.Criterion)); } if (filteringCriterionAction.Items.Count > 0) filteringCriterionAction.Items.Add(new ChoiceActionItem("All", null)); } private void FilteringCriterionAction_Execute( object sender, SingleChoiceActionExecuteEventArgs e) { ((ListView)View).CollectionSource.BeginUpdateCriteria(); ((ListView)View).CollectionSource.Criteria.Clear(); ((ListView)View).CollectionSource.Criteria[e.SelectedChoiceActionItem.Caption] = CriteriaEditorHelper.GetCriteriaOperator( e.SelectedChoiceActionItem.Data as string, View.ObjectTypeInfo.Type, ObjectSpace); ((ListView)View).CollectionSource.EndUpdateCriteria(); } } }