用于慢速打字机的WPF ComboBox

sth*_*ird 6 wpf combobox

在我的WPF应用程序中,我使用了一个组合框.当用户想要选择一个项目时,他可以输入字母,组合框跳转到以这些字母开头的下一个条目.如果用户停止输入并在一定延迟后再次启动,则组合框假定用户已经开始使用新单词.嗯,这是通常的ComboBox行为,没有什么特别的......问题是,我们的一些用户是慢速打字机.假设用户正在搜索新单词,是否有办法增加在没有组合框的情况下输入两个字母之间的时间?希望你知道我的意思......

E-F*_*nch 0

您可以全力以赴并推出您自己的可过滤组合框。查看此代码,看看它是否有帮助。

XAML:

<ComboBox x:Name="myComboBox" TextBoxBase.TextChanged="myComboBox_TextChanged" DisplayMemberPath="myDisplay" IsEditable="True" StaysOpenOnEdit="True" SelectionChanged="myComboBox_SelectionChanged" />
Run Code Online (Sandbox Code Playgroud)

然后,在引擎盖下:

ObservableCollection<myType> myCollection;
public ICollectionView cvs { get; set; }
public MyWindow()
{
    InitializeComponent();

    myCollection = new ObservableCollection<myType>();
    cvs = CollectionViewSource.GetDefaultView(myCollection);
    myComboBox.ItemsSource = cvs;
    cvs.Filter = FilterOut;
}

private void myComboBox_TextChanged(object sender, TextChangedEventArgs e)
{
    cvs.Refresh();
}

private bool FilterOut(object input)
{
    myType item = (myType)input;
    return ( string.IsNullOrEmpty(myComboBox.Text) || item.myDisplay.Contains(myComboBox.Text));
}
Run Code Online (Sandbox Code Playgroud)