2012-04-25 3 views
0

) Silverlight 5에서 작업 중이며 자동 완성 텍스트 상자를 작성하려고합니다 (항목을 표시하기 위해 radcombobox와 함께 telerik radwatermarktextbox 컨트롤을 사용하고 있습니다). 항목 목록은 공항 목록입니다. 비동기 호출에서 WCF 서비스로 반환됩니다.silverlight 자동 완성 (비동기 wcf 서비스

제가 실행중인 문제는 필자가 텍스트 상자에 빠르게 입력하는 경우 항목의 필터링 된 목록을 가져 오기위한 여러 개의 비동기 호출이 (각 키 누르기마다 하나씩) 시작되고 반드시 완료되지 않아야한다는 것입니다. 실행 된 순서와 동일합니다. 특히 목록이 돌아올 때 특히 그렇습니다. 정말 빠르게 HPN을 입력한다면

그래서, 다음의 호출

을 쫓겨나 H와

비동기 호출 매개 변수로 (# 1-231 행을 반환합니다) 매개 변수로 HP와 비동기 호출을 (# 2 - 매개 변수로 HPN과) 비동기 호출을 4 개 행을 반환합니다 (# 3 -

때때로 나는 다른 후 # 1을 호출하는 결과를 얻고있다)

나는 WCF 서비스 I를 변경하지 못할 1 개 행을 rrturn합니다 WCF 서비스에 동기 메서드를 호출하거나 추가합니다.

Foxpro에는 입력 버퍼에서 대기중인 키가 있는지 알려주는 CHRSAW라는 기능이 있습니다 (http://msdn.microsoft.com/en-us/library/5skwdb75(v=vs.80).aspx) 호출 # 1과 # 2 호출을 방지하는 데 사용할 수 있습니다.

이에 해당하는 .NET 기능/기타 기능이 있습니까?

는 여기가 당신이 의견에 게시 된 것보다

private void ICAO_TextChanged(object sender, TextChangedEventArgs e) 
    { 
     TextBox txt = (TextBox)sender; 

     if (txt.Text != String.Empty) 
     { 
       radBusyIndicator1.IsBusy = true; 
       _ServiceClient.FindAirportByPartialICAOAsync(txt.Text.Trim().ToUpper()); 
     } 
    } 
+0

현재로서는 WCF 메서드에 개체 UserState 매개 변수가 있고 _lastAsyncCall이라는 DateTime 속성을 DateTime.Now로 설정하여 사용자 상태로 전달한 다음 완료 이벤트, 나는 userstate <_lastAsyncCall –

답변

1

이보다 쉽게 ​​솔루션 당신은뿐만 아니라 사용자 상태로 매개 변수로 보내는 텍스트를 게시하는 것입니다을 사용하고 코드입니다. 따라서 "H"를 찾을 때 사용자 상태로 "H"를 전달합니다.

전화가 다시 왔을 때 사용자 상태 = 자동 완성의 텍스트 만 사용하십시오.

관련 문제