我有一个绑定(bind)到字符串列表的ListBox。我想在TextBox中输入文本时过滤列表。我该怎么做?

public void ListLoad()
{
    ElementList = new List<string>(); // creation a list of strings
    ElementList.Add("1"); // add a item of string
    ElementList.Add("2"); // add a item of string

    DataContext = this; // set the data context
}

我在XAML中将其绑定(bind)为:
ItemsSource="{Binding ElementList}"

最佳答案

CollectionViewSource类可以在这里提供帮助。据我所知,它具有过滤,排序和分组集合的许多功能。

ICollectionView view = CollectionViewSource.GetDefaultView(ElementList);
view.Filter = (o) => {return o;}//here is the lambda with your conditions to filter

当您不需要任何过滤器时,只需将view.Filter设置为null即可。
另请参阅filtering上的这篇文章

10-06 03:07