我创建了一个简单的 UWP 应用程序。我想要的是,每当用户单击 AutoSuggestBox 时,它都需要将 ItemsSource 中的所有项目显示为建议。当我设置 DisplayMemberPath 时,组合框工作正常,但单击时 AutoSuggestBox 不会将 ItemsSource 显示为建议。 (本例当我点击AutoSuggestBox时,需要显示ABC、BCD)
xaml:MainPage.xaml
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
<ComboBox Width="120"
ItemsSource="{Binding TestList,Mode=OneWay}"
SelectedIndex="0"
DisplayMemberPath="Name"/>
<AutoSuggestBox Width="200"
Margin="0,20,0,0"
ItemsSource="{Binding TestList,Mode=OneWay}"
DisplayMemberPath="Name"
TextMemberPath="Name"
PlaceholderText="Search"/>
</StackPanel>
背后代码:MainPage.xaml.cs
public class Test
{
public string Name { get; set; }
public int Id { get; set; }
}
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
private List<Test> _testList;
public List<Test> TestList
{
get
{
_testList = new List<Test>();
_testList.Add(new Test()
{
Name = "ABC",
Id = 1,
});
_testList.Add(new Test()
{
Name = "BCD",
Id = 2,
});
return _testList;
}
}
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
}
}
在这种情况下,当我点击AutoSuggestBox时,它需要显示ABC,BCD
请参阅 AutoSuggestBox 文档, 表示一个文本控件,当用户使用键盘或笔(使用墨迹和手写识别)输入文本时,该控件向用户提供建议。它将根据输入过滤您的数据。然后,将过滤后的数据设置为 AutoSuggestBox 的
ItemsSource
来更新建议列表。 因此,下拉列表仅在您键入时呈现。当您单击 AutoSuggestBox
时,它不会显示下拉列表。
对于这种情况,最佳实践是使用
ComboBox
来替换。