DevExpress Xtra TreeListコントロールを使用して、質問と回答の階層セットを表示しています。セクション、サブセクション、およびさまざまな質問を含む複雑な調査フォームについて考えてみてください。
フォームは非バインドモードで機能しており、データセットもデータバインディングもありません。
各質問に表示される情報の一部として、バックグラウンドスレッドでWebサービスを呼び出すことによってバックグラウンドが取得されます。これらのWebサービス呼び出しの結果は、への呼び出しを介してTreeListに入力するために使用されTreeListNode.SetValue()
ます。
現在、これらの呼び出しSetValue()
により、アクティブなエディターが閉じられ、ユーザーの現在の入力が破棄されます。これは、非常にユーザーにとって使いにくいエクスペリエンスです。
ユーザーの編集プロセスがこれらのバックグラウンド更新の影響を受けないようにするにはどうすればよいですか?
私が見つけた唯一の同様の質問は、DevExpressフォーラムでした。そこでは、提案はユーザーのエントリの強制コミットであり、データの損失を回避しますが、それ以外の場合は、ユーザーエクスペリエンスの低下を修正することはできません。これらはすべて2007年のものであるため、状況が変わったことを期待しています。ユーザー自身のアクティビティの状態を変更せずにノードを更新することは可能ですか?
背景:通常の画面には500以上の行があり、各行のWebサービス呼び出しが戻るまでに約0.6秒かかります。0.6秒ごとにユーザーのアクションを強制的にコミットまたはキャンセルすることは単純に受け入れられず、ユーザーが変更を加える前に処理が完了するのを待つ(> 5分)ことも同様に不十分です。