2015-01-15 3 views
1

Windows Phone 8.1 (WinRT XAML)의 새로운 AutoSuggestBox 컨트롤을 사용하여 사용자가 제안을 클릭 한 후에도 항상 제안 상자를 열어 두려고합니다. ,Windows Phone 8.1에서 AutoSuggestBox 제안 상자를 열어 두는 방법

private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) { 
    sender.Text = args.SelectedItem.ToString(); 
    sender.IsSuggestionListOpen = true; 
} 

그러나 불행히도 제안 상자는 여전히 항목을 선택한 후 종료 :

나는 아무 문제가 프로그래밍 그럼이 같은 SuggestionChosen 이벤트 후크

AutoSuggestBox.IsSuggestionListOpen = true;을 설정하여 제안 상자 열기로 시작하지 있습니다 IsSuggestionListOpen을 true로 설정하더라도.

선택 후 열어두면 도움을 얻을 수 있습니다.

답변

1

내가 발견 한 해결책은 LayoutUpdated 이벤트를 연결하는 것입니다.

필자는 AutoSuggestBox를 PickerFlyout에 가지고 있으므로, 분명히 PickerFlyout이 열려 있으면 (단지) 제안 상자를 열어주기를 원합니다. 그래서 Tag 속성을 PickerFlyout을 여는 버튼에 설정하여 PickerFlyout이 열려 있는지 또는 닫혀 있는지 식별합니다. 그런 다음 AutoSuggestBox의 LayoutUpdated 이벤트에서 PickerFlyout이 열려 있으면 IsSuggestionListOpen 속성을 true으로 설정하고 그렇지 않은 경우 false 속성을 설정합니다.

코드 :

나는 모든 권리 시간에 LayoutUpdated 이벤트가 발생하기 때문에, IsSuggestionListOpen 속성을 설정하는 데 필요한 유일한 장소
private void PickerFlyout_Opened(object sender, object e) { 
    ActivatePickerFlyoutButton.Tag = "open"; 
} 

private void PickerFlyout_Closed(object sender, object e) { 
    ActivatePickerFlyoutButton.Tag = "closed"; 
} 

private void AutoSuggestBox_LayoutUpdated(object sender, object e) { 
    AutoSuggestBox.IsSuggestionListOpen = ((ActivatePickerFlyoutButton.Tag as string).Equals("open")); 
} 

.