我是应用程序开发的新手,所以只是想说我在C#上也没有很多经验。所以请简单。
我需要使用textBox创建一个下拉列表。就像输入一个字母一样,下拉列表会显示列表中最可能的单词。 每次输入一个字母时,列表都应该不断更新。
答案 0 :(得分:1)
我建议你不要使用带有文本框的下拉列表。这是一种桌面控件。对于移动用户来说,使用这种控制并不是用户友好的。
因为当您键入键盘时会显示隐藏60%的屏幕。然后你必须在键入1个字母后按回来隐藏键盘。然后查看结果并添加1个字母..许多用户互动不会让用户满意。
对于以下情况,Windows手机通常会使用长列表选择器:
例如: https://msdn.microsoft.com/en-us/library/windows/apps/jj244365(v=vs.105).aspx
答案 1 :(得分:0)
当这个工作时,让我们从过滤开始。我们将使用CollectionView进行实时过滤。
最终的xaml:
<DockPanel>
<TextBox Text="{Binding SearchTerm, UpdateSourceTrigger=PropertyChanged}"
DockPanel.Dock="Top"/>
<ListBox ItemsSource="{Binding FilteredContacts}" />
</DockPanel>
C#:
public class ViewModel : INotifyPropertyChanged
{
private string _searchTerm;
public ViewModel()
{
Contacts = new ObservableCollection<string>
{
"Peter", "Daniel", "Kate", "John", "Anthony", "Laura", "Charles"
};
FilteredContacts = new ListCollectionView(Contacts);
FilteredContacts.Filter = contact => string.IsNullOrWhiteSpace(SearchTerm) || ((string)contact).Contains(SearchTerm);
}
public string SearchTerm
{
get { return _searchTerm; }
set
{
if (value == _searchTerm) return;
_searchTerm = value;
OnPropertyChanged("SearchTerm");
FilteredContacts.Refresh();
}
}
public ObservableCollection<string> Contacts { get; private set; }
public CollectionView FilteredContacts { get; private set; }
}
答案 2 :(得分:-1)
在Windows Phone 8.1中,使用ComboBox实现了下拉功能。本教程可以为您提供帮助:http://www.c-sharpcorner.com/UploadFile/2d2d83/combobox-in-windows-phone-8-1/
注意:我假设您正在基于WinRT运行时创建Windows Phone 8.1应用程序。较旧的Silverlight运行时不支持下拉列表。 (尽管您可以使用Windows Phone toolkit来实现相同的目标)