2014-04-10 49 views
0

所以我有一個自動完成框,這是企業的鏈接。我正在尋找適當的措施來觸發caliburn查詢。到目前爲止,我嘗試了MouseClick,它完美地起作用!但如果鼠標拖過鍵入的字符,它實際上會崩潰。接下來我實現了KeyDown,有時候數據庫會降低性能。任何建議,以什麼應該改變?caliburn查詢項目源採取行動

我試過到目前爲止:

public void UpdateCollection() 
{ 
    using (var ctx = DB.GET()) 
    { 
     Clients.Clear() 
     Clients.AddRange(ctx.Businesses) 
    } 
} 

XAML的一面:

<telerik:RadAutoCompleteBox cal:Message.Attach="[Event KeyDown] = [UpdateCollection]" ItemsSource="{Binding Clients}"> 

可能的選擇是通過一個模板或風格?

回答

0

也許嘗試在按下按鍵後放置​​一個計時機制,以便每按一次按鍵都不需要重新查詢?是這樣的:

private string _text; 
    public async void UpdateCollection() 
    { 
     _text = searchtextvaluehere; 
     await Task.Delay(200); 
     if (_text == searchtextvaluehere) 
     { 
      using (var ctx = DB.GET()) 
      { 
       Clients.Clear(); 
       Clients.AddRange(ctx.Businesses); 
      } 
     } 
    } 

我不是100%確定如何Telerik的自動完成的作品,但我已經使用類似上述的前延遲搜索。希望它能幫助你。