我正在使用DevExpress Xtra TreeList控件来显示一组分层的问题和响应 - 考虑一个复杂的调查表,其中包含部分、子部分和各种问题。
该表单在未绑定模式下工作,没有数据集也没有任何数据绑定。
作为每个问题显示的信息的一部分,一些背景是通过在后台线程上调用 web 服务获得的;然后,这些 Web 服务调用的结果将用于通过调用来填充 TreeList TreeListNode.SetValue()
。
目前,这些调用SetValue()
导致所有活动编辑器关闭,丢弃用户当前的输入——这是一种对用户非常不友好的体验。
如何确保用户的编辑过程不受这些后台更新的影响?
我发现的唯一类似问题是在 DevExpress 论坛上,其中建议是强制提交用户的条目,这样可以避免数据丢失,但不能解决糟糕的用户体验。由于这些都是从 2007 年开始的,我希望现在情况已经改变。是否可以在不改变用户自己活动状态的情况下更新节点?
背景:一个典型的屏幕会有 500 多行,每行的 Web 服务调用大约需要 0.6 秒才能返回。每 0.6 秒强制提交或取消用户的操作是不可接受的,强制用户等待处理完成(> 5 分钟)才能进行任何更改也同样糟糕。