MVVM Light에서 AutoCompleteBox를 사용하는 가장 좋은 방법을 이해하려고합니다.MVVM Light에서 AutoCompleteBox를 사용하는 방법은 무엇입니까?
public ICommand AutoComplete
{
get
{
return new RelayCommand<KeyEventArgs>(e =>
{
var txtBox = e.OriginalSource as TextBox;
if (e.Key == Key.Unknown)
{
return;
}
string autoComplete = txtBox.Text + e.Key;
if (autoComplete.Length >= 3)
{
RestClient c = new RestClient("http://localhost:3333/api/store");
RestRequest r = new RestRequest("/GetStoreNames",Method.GET);
r.AddParameter("Name", autoComplete);
r.AddParameter("Latitude", "49");
r.AddParameter("Longitude", "49");
var d = c.BuildUri(r);
c.ExecuteAsync(r, response2 =>
{
var content = response2.Content;
});
}
});
}
}
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding AutoComplete, Mode=OneWay}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<toolkit:AutoCompleteBox x:Name="acbStore" Margin="154,196,29,0" VerticalAlignment="Top" RenderTransformOrigin="0.6,0.083" Height="162" MinimumPopulateDelay="500"/>
나는 두 가지 문제점이있다.
일단 내가 결과를 얻으면 자동 완성 영역에 어떻게 표시합니까?
한 번에 여러 요청을 수행하는 것을 어떻게 지연시킬 수 있습니까? 보시다시피 3자를 입력하기 전에 서버를 치고 싶지는 않지만 공정한 게임입니다. 첫 번째 요청이 대역폭 낭비로 이어지기 전에 20 개의 요청이 서버에 수행되는 것과 같은 걱정입니다.
죄송 합니다만 keyDown 이벤트가 표시되었다고 생각했지만 나중에 사용하고 있습니다. 나는 그것을 확인하고 그것이 어떻게되는지 보게 될 것이다. – chobo2