에서 자동 완성 상자의 드롭 다운 목록을 닫는 방법 어쨌든 프로그래밍 방식으로 자동 완성 상자의 드롭 다운 목록을 닫으시겠습니까? 나의 유스 케이스는 다음과 같다.Windows phone 7
MainPage.xaml은 SearchPage.xaml (즉 /SearchPage.xaml?query=someText)에 값을 전달합니다.
SearchPage.xaml.cs에, 내가 설정,이 시점에서
autoCompleteBox.Text = NavigationContext.QueryString["query"].
는 제안 경기의 드롭 다운 목록이 표시됩니다. 페이지를 탐색 할 때이 동작을 원하지 않습니다.
또한 다음을 시도하여 드롭 다운 목록을 닫았지만 도움이되지 않았습니다.
autoCompleteBox.Text = NavigationContext.QueryString["query"];
autoCompleteBox.IsDropDownOpen = false;
드롭 다운 목록은 초점을 맞추고을 잃을 때 멀리 AutoCompleteBox에서 갈 것 같다,하지만 난 속성/필드가 포커스를 잃을 수 있도록 설정하는 표시되지 않습니다.
어떤 도움을 주시면 감사하겠습니다.
글쎄, 나는 조금 어설프게하고 kludge를 내놓았다. SearchPage.xaml.cs의 생성자에 다음 코드가 있습니다.
autoCompleteBox.TextFilter += DummyFilter;
autoCompleteBox.GotFocus += (s,args) => {
if(!isAutoCompleteBoxInit) {
autoCompleteBox.TextFilter -= DummyFilter;
autoCompleteBox.TextFilter += RealFilter;
}
}
더미 필터는 다음과 유사합니다.
bool DummyFilter(string search, string value) { return false; }
RealFilter는 다음과 같습니다. 난 [ "쿼리"] = autoCompleteBox.Text NavigationContext.QueryString 설정 어디에 OnNavigatedTo 방법에서
bool RealFilter(string search, string value) {
if(null != value) return value.ToLower().StartsWith(search.ToLower());
}
이다. 그래서 지금이 작업을 수행 할 때 DummyFilter는 항상 false를 반환하므로 드롭 다운 목록이 사라집니다. 사용자가 AutoCompleteBox에 집중할 때 올바른 필터가 이미 TextFilter 속성에 연결되어 있는지 확인한 다음 그렇지 않은 경우 스위치를 수행합니다.
여러분 중 일부분에게 도움이되기를 바랍니다.
아니요. 작동하지 않았습니다. TextBlock을 추가하고 디자인 타임에 축소되도록 가시성을 설정합니다. 페이지를 탐색 할 때 TextBlock.Focus()를 호출하면 전혀 도움이되지 않습니다. 그것이 나를 위해 일하는 유일한 방법은 내가 위에서 말한 것입니다. – jake
@ user373312 비주얼 트리에서 제거되면서 축소 된 것에 포커스를 설정할 수 없습니다. –
this.Focus()를 사용하여 전체 페이지에 포커스를 설정 했습니까? –