我們有以下WPF:具有行詳細模板的數據網格。處理此網格上的選定行(客戶選擇)以觸發兩個查詢以檢索地址和聯繫人數據,然後行詳細模板將這些數據顯示在兩個選項卡中,每個選項卡均具有一個數據網格。所有的魔法都是通過綁定完成的,子網格綁定到主Customer對象的屬性,我們將其作爲IObservableCollection。DataGrid所選項目的更改速度比數據庫中的數據加載速度更快
使用鍵盤上的「向下移動」箭頭時,會發生錯誤,所選索引變化快,查詢結果比接口晚回來,因此數據與顯示內容不一致,數據更新無法執行。我們有一個例外。所以我的問題是:如何以適當的方式防止這種情況?
我們是否應該嘗試捕獲正確的難以理解的異常,然後什麼也不做(鬆散的數據不能應用於接口)? 我們不想等待數據回來,如果用戶滾動速度很快,客戶選擇的行應該關閉,並且不會顯示詳細信息。 也許我們應該在檢索選定的項目詳情之前有一段延遲?因此,在延遲結束之前沒有查詢所選項目是否改變?
謝謝你的想法。
要旨代碼: 的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-滾動和建議的答案),但問題仍然存在...