This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GridControl.cs
60 lines (50 loc) · 2.3 KB
/
GridControl.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Registrator;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.FilterEditor;
using DevExpress.XtraEditors.Filtering;
using DevExpress.Utils.Menu;
using DevExpress.LookAndFeel;
using DevExpress.XtraEditors;
using System.Windows.Forms;
namespace DXSample {
public class MyGridControl : GridControl {
public MyGridControl() : base() { }
protected override void RegisterAvailableViewsCore(InfoCollection collection) {
base.RegisterAvailableViewsCore(collection);
collection.Add(new MyGridViewInfoRegistrator());
}
}
public class MyGridView : GridView {
public MyGridView() : base() { }
public MyGridView(GridControl grid) : base(grid) { }
internal const string MyGridViewName = "MyGridView";
protected override string ViewName { get { return MyGridViewName; } }
protected override Form CreateFilterBuilderDialog(FilterColumnCollection filterColumns,
FilterColumn defaultFilterColumn) {
return new MyFilterBuilder(filterColumns, GridControl.MenuManager, GridControl.LookAndFeel, this,
defaultFilterColumn);
}
}
public class MyGridViewInfoRegistrator : GridInfoRegistrator {
public MyGridViewInfoRegistrator() : base() { }
public override string ViewName { get { return MyGridView.MyGridViewName; } }
public override BaseView CreateView(GridControl grid) {
return new MyGridView(grid);
}
}
public class MyFilterBuilder : FilterBuilder {
public MyFilterBuilder(FilterColumnCollection columns, IDXMenuManager manager, UserLookAndFeel lookAndFeel,
ColumnView view, FilterColumn fColumn)
: base(columns, manager, lookAndFeel, view, fColumn) {
sbOK.Enabled = sbApply.Enabled = false;
((FilterControl)fcMain).FilterChanged +=
new FilterChangedEventHandler(OnFilterControlFilterChanged);
}
private void OnFilterControlFilterChanged(object sender, FilterChangedEventArgs e) {
sbOK.Enabled = sbApply.Enabled = true;
((FilterControl)fcMain).FilterChanged -= new FilterChangedEventHandler(OnFilterControlFilterChanged);
}
}
}