43 lines
1.9 KiB
C#
43 lines
1.9 KiB
C#
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<FilteringCriterion>())
|
|
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();
|
|
}
|
|
}
|
|
}
|