2015-01-15 58 views
1

在Windows Phone 8.1(WinRT XAML)中使用新的AutoSuggestBox控件時,我試圖始終打開建議框 - 即使在用戶單擊某個建議後也是如此。如何使Windows Phone 8.1中的AutoSuggestBox建議框保持打開狀態

我沒有問題開始意見箱開放以編程方式設置AutoSuggestBox.IsSuggestionListOpen = true;

然後我勾SuggestionChosen事件是這樣的:

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

但不幸的是,建議框中選擇一個項目之後仍然關閉,即使我將IsSuggestionListOpen設置爲true。

任何幫助讓它保持開放後選擇,將不勝感激。

回答

1

我發現的解決方案是鉤住LayoutUpdated事件。

我有一個PickerFlyout中的AutoSuggestBox,所以我只想要打開PickerFlyout(顯然)的意見箱。因此,我在打開PickerFlyout的按鈕上設置了Tag屬性,以確定PickerFlyout是打開還是關閉。然後在AutoSuggestBox的LayoutUpdated事件中,我將IsSuggestionListOpen屬性設置爲true,如果PickerFlyout打開(如果不是,則設置爲false)。

代碼:

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")); 
} 

這只是我需要設置IsSuggestionListOpen屬性,因爲在任何合適的時間的LayoutUpdated事件觸發的地方。

相關問題