Windows runtime 如何在Windows Phone 8.1中保持AutoSuggestBox建议框处于打开状态
使用Windows Phone 8.1(WinRT XAML)中新的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
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
事件在所有正确的时间触发