DataGrid选择项的更改速度比DB中的数据加载速度更快

时间:2013-07-09 15:20:21

标签: wpf datagrid

我们有以下WPF:带有行详细信息模板的数据网格。处理此网格上的选定行(客户选择)以触发两个查询以检索地址和联系人数据,然后行详细信息模板在两个选项卡中显示这些数据,每个选项卡都有一个数据网格。所有的魔法都是通过绑定完成的,subgrids绑定到主Customer对象的属性,我们将其作为IObservableCollection。

当在键盘上使用“向下移动”箭头时,会发生错误,选择的索引变化很快,因此查询结果“快回”到接口,因此数据与显示的内容不一致,数据更新无法执行。我们有一个例外。所以我的问题是:如何以适当的方式预防这种情况?

我们是否应该尝试使用正确的模糊异常,然后什么也不做(松散的数据无法应用于接口)? 我们不想等待数据返回,如果用户滚动非常快,客户选择的行应该关闭,无论细节没有显示。 也许我们应该在检索所选项目详细信息之前有延迟?因此,如果在延迟结束之前所选项目发生变化,则无法查询?

感谢您的想法。

代码要点: Xaml:https://gist.github.com/Xarkam/3b89eb614124bb2f2307 选定的索引更改了处理:https://gist.github.com/Xarkam/cf28844ce05fd4984807

编辑7月10日: 我修改了主数据网格项目定义,如下面的要点:(添加https://前缀,我没有足够的声誉来添加更多链接,抱歉)gist.github.com/postb99/d3be79f0ef2544d685f9(灵感来自stackoverflow。 com / questions / 13374957 / datagrid-throws-invalidoperationexception-by-scrolling and proposed answer)但问题仍然存在...

1 个答案:

答案 0 :(得分:0)

我们已经解决了它,如果我记得很清楚,我们没有为每个要显示的对象集合提供可观察的集合。