我想在过滤视图时使用延迟执行来更新数据网格视图中的更改数据。目前我有一个可以过滤的行数组,然后可以搜索过滤后的数据。我使用 linq 查询来过滤数据并搜索数据。我在下面总结了我是如何做到这一点的。
IEnumerable<SomeDataRowType> m_mainData =
(select from someDataContext
new SomeDataRowType {
properties...
}).ToArray();
IEnumerable<SomeDataRowType> m_filteredData =
m_mainData.Where(r => r.SomeProperty == someValue);
IEnumerable<SomeDataRowType> m_searchedData =
m_filteredData.Where(r => r.SomeProperty.Contains(someSearchTerm));
myDataGridView.DataSource = new SortableBindingList<SomeDataRowType>(m_searchedData.ToArray());
现在,如果m_mainData
数据集没有改变,这将非常有用。我可以清除搜索查询并返回到过滤查询,或者同时删除它们,或者只应用搜索查询。不幸的是,如果m_mainData
集合确实发生了变化m_filteredData
,那么m_searchedData
过滤器将在旧m_mainData
数据集而不是新的更新数据集上执行。我有点理解为什么会这样,但我不知道我的选择是什么来解决这个问题。
如果有任何不清楚的地方,我深表歉意。谢谢您的帮助!