Files
SISBusiness/SISBusiness.Module.CSharp/Controllers/CriteriaController_VC.cs
T
2018-10-14 23:26:09 +02:00

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();
}
}
}