C# 手动触发CustomRowFilterEvent的方法

C# 手动触发CustomRowFilterEvent的方法,c#,devexpress,C#,Devexpress,我们想用Winforms过滤XtraGrid中的一些行。 RefreshData()可能需要很长时间(所有行似乎都是从数据库中再次读取的) 激发事件的方法似乎隐藏在DevExpress的深处 DevExpress.XtraGrid.Views.Base.ColumnView.RaiseCustomRowFilter(Int32 listSourceRow) (受保护的内部方法) 如果只知道Gridview,是否有方法触发事件 我的问题从第一阶段开始。我如何获得该方法 MethodInfo Me

我们想用Winforms过滤XtraGrid中的一些行。 RefreshData()可能需要很长时间(所有行似乎都是从数据库中再次读取的)

激发事件的方法似乎隐藏在DevExpress的深处

DevExpress.XtraGrid.Views.Base.ColumnView.RaiseCustomRowFilter(Int32 listSourceRow)
(受保护的内部方法)

如果只知道Gridview,是否有方法触发事件

我的问题从第一阶段开始。我如何获得该方法

MethodInfo MethodInfo=gridView.GetType().GetMethod(“RaiseCustomRowFilter”); 返回空值


如果包含Linq:

DataView dv = TheDataTable.AsDataView();
dv.RowFilter = "mycolumn > 3";
gridControl1.DataSource = dv;
几乎任何数据源都可以这样做

BindingSource bs = new BindingSource;
bs.DataSource = theDataSorce;
bs.Filter = "mycolumn > 3";
gridControl1.DataSource = bs;

用户看不到这些过滤器。

为什么不使用dataview并对其进行过滤?@Stig我认为dataview在客户过滤器上起作用。我们还想添加一个不可见的过滤器,它只用于“软删除”项目。DataView也可以是一个额外的抽象级别,这个用例需要它吗?DataView是一个普通数据表之上的虚拟数据表。用于筛选客户端上的数据源。如果您不使用DataTables保存数据,那么还有其他过滤源的方法。你总是可以使用数据源来过滤你的数据。这种方法没有什么问题:我们谈论的是一个“成长”的产品。如果数据源发生了变化,获得一个漂亮的红十字(即使使用gridview.BeginDataEdit()…EndDataEdit)的可能性很大。这也可能需要很长时间。另一个Bindingsource也将是另一个abbstraction级别。有趣的是,我们有一个第三方ORM,其中我们的数据源是从bindingsource继承的。除了它不支持过滤。。。除DGV正在进行完全刷新外,对此的更改在DataGridView中也不可见。听到这个消息很难过,但如果您的数据源支持IBindingListView,它已经有了一个筛选器选项。以这种方式进行过滤从未出现任何性能问题(数据量合理)