Windows runtime 如何在Windows Phone 8.1中保持AutoSuggestBox建议框处于打开状态

Windows runtime 如何在Windows Phone 8.1中保持AutoSuggestBox建议框处于打开状态,windows-runtime,windows-phone-8.1,winrt-xaml,Windows Runtime,Windows Phone 8.1,Winrt Xaml,使用Windows Phone 8.1(WinRT XAML)中新的AutoSuggestBox控件,我试图始终保持建议框处于打开状态,即使在用户单击建议之后也是如此 通过编程方式设置AutoSuggestBox.IsSuggestionListOpen=true,我可以打开建议框 然后我将SuggestionSelected事件挂接如下: private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSugges

使用Windows Phone 8.1(WinRT XAML)中新的AutoSuggestBox控件,我试图始终保持建议框处于打开状态,即使在用户单击建议之后也是如此

通过编程方式设置
AutoSuggestBox.IsSuggestionListOpen=true,我可以打开建议框

然后我将SuggestionSelected事件挂接如下:

private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) {
    sender.Text = args.SelectedItem.ToString();
    sender.IsSuggestionListOpen = true;
}
但不幸的是,即使我将IsSuggestionListOpen设置为true,建议框在选择项目后仍会关闭


如果您能在选择后帮助它保持打开状态,我们将不胜感激。

我找到的解决方案是挂接
LayoutUpdated
事件

我在一个PickerFlyout中有一个AutoSuggestBox,所以我只想在PickerFlyout打开时打开建议框(显然)。因此,我在打开PickerFlyout的按钮上设置了一个
标记
属性,以确定PickerFlyout是打开还是关闭的。然后,在AutoSuggestBox的
LayoutUpdated
事件中,我将
IsSuggestionListOpen
属性设置为
true
(如果选择器Lyout打开)(如果未打开,则设置为
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
事件在所有正确的时间触发