在Windows Phone 8.1(WinRT XAML)中使用新的AutoSuggestBox控件,我试图保持建议框始终打开 - 即使在用户点击建议后也是如此。
通过以编程方式设置AutoSuggestBox.IsSuggestionListOpen = true;
然后我像这样挂钩SuggestionChosen事件:
private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) {
sender.Text = args.SelectedItem.ToString();
sender.IsSuggestionListOpen = true;
}
但不幸的是,即使我将IsSuggestionListOpen设置为true,选择项目后建议框仍会关闭。
在选择之后让它保持开放的任何帮助都将受到赞赏。
答案 0 :(得分:1)
我发现的解决方案是挂钩LayoutUpdated
事件。
我在PickerFlyout中有AutoSuggestBox,所以如果PickerFlyout打开(显然),我只想打开建议框。因此,我在按钮上设置Tag
属性,打开PickerFlyout以识别PickerFlyout是打开还是关闭。然后在AutoSuggestBox的LayoutUpdated
事件中,如果PickerFlyout已打开,我将IsSuggestionListOpen
属性设置为true
(如果不是,则将false
设置为。{/ p>
代码:
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
事件会在所有正确的时间触发。