У меня есть источник данных (типа List) с около 30 000 записей.
public class LocationItem
{
public string Name { get; set; };
public double Latitude { get; set; };
public double Longitude { get; set; };
public double Height { get; set; };
}
После привязки этого источника к моему AutoCompleteBox каждая введенная буква требует около 1-3 секунд для фильтрации. Тип фильтра - «Пользовательский». Мой метод фильтрации не является узким местом - я проверил это с помощью класса «Секундомер» и профилировщика производительности. Фильтрация начинается не раньше четвертого символа.
Единственная альтернатива, чтобы быть немного быстрее, это использовать событие TextChanged вместо реализованного поведения фильтра. В событии TextChanged я фильтрую исходный источник данных (Linq) и привязываю только отфильтрованное подмножество к AutoCompleteBox.
Есть ли какой-то другой способ повысить производительность? Или как лучше привязать источник данных (с тысячами записей) к AutoCompleteBox с функциональностью фильтра?
С уважением,
Дэнни