我们有以下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)但问题仍然存在...
答案 0 :(得分:0)
我们已经解决了它,如果我记得很清楚,我们没有为每个要显示的对象集合提供可观察的集合。