2010-05-29 55 views
0

我有一個SL3可以對數據服務進行異步調用。基本上,有一個樹形視圖綁定到一組對象。這個想法是,當用戶選擇一個特定的treeviewitem時,就會對數據服務進行調用,並將特定於所選treeviewitem的參數傳遞給數據服務中相應的web方法。數據服務將數據返回給SL3客戶端,客戶端將數據呈現給用戶。從SL3多次撥打數據服務?

這效果很好。問題是,當用戶使用鍵盤上的箭頭鍵開始瀏覽樹形視圖時,他們可以按下向下箭頭鍵,例如10次,並且將對數據服務進行10次調用,然後每個10個項目將暫時顯示給用戶,直到完成最近選擇的樹視圖項目的數據。

因此 - 在問題。我該如何放置某種形式的延遲,以便讓某人快速瀏覽樹形視圖,然後,一旦停在特定的treeviewitem中,就會調用數據服務?

感謝您的任何建議。

克里斯

回答

0

至於建議的funwithcoding,你可以嘗試使用Reactive Extensions for .Net (Rx),我沒有用它自己,但是從我聽到它會做什麼你之後。

但是,如果您覺得您不想要/有時間學習Rx等,可以查看使用DispatcherTimer在您調用服務檢索數據之前在Treeview選定事件中創建了一個輕微延遲。

+0

如果我選擇在所選事件中添加延遲,是否仍然會產生相同的問題,現在除了現在我會多次延遲調用Web服務? – Chris 2010-05-29 19:50:03

+0

是的,它的確如此。我想我所說的是,在計時器到期之後,你必須做一次檢查,看看該項目是否仍然是Treeview中的選定項目。如果是,請打電話,如果沒有,則什麼也不做。 – 2010-05-31 00:02:46