题
任何人都可以建议一个通用集合类的良好实现,该集合类实现了 IBindingListView
& IBindingList
接口并提供过滤和搜索功能?
我认为我当前的选择是:
- 使用其他人编写和测试的类
- 继承自
BindingList<T>
, ,并实施IBindingListView
接口 - 从头开始编写自定义集合,实现
IBindingListView
和IBindingList
.
显然,第一个选项是我的首选。
解决方案
我使用并构建了我在几年前的旧 MSDN 论坛帖子上找到的实现,但最近我再次搜索并发现了一个名为的 sourceforge 项目 绑定列表视图. 。它看起来很不错,我只是还没有将它替换为我的破解版本。
努吉特包: Equin.ApplicationFramework.BindingListView
示例代码:
var lst = new List<DemoClass>
{
new DemoClass { Prop1 = "a", Prop2 = "b", Prop3 = "c" },
new DemoClass { Prop1 = "a", Prop2 = "e", Prop3 = "f" },
new DemoClass { Prop1 = "b", Prop2 = "h", Prop3 = "i" },
new DemoClass { Prop1 = "b", Prop2 = "k", Prop3 = "l" }
};
dataGridView1.DataSource = new BindingListView<DemoClass>(lst);
// you can now sort by clicking the column headings
//
// to filter the view...
var view = (BindingListView<DemoClass>)dataGridView1.DataSource;
view.ApplyFilter(dc => dc.Prop1 == "a");
其他提示
这是您方法2和3幕后方法的帮助:实现 Windows 窗体数据绑定的过滤
不隶属于 StackOverflow