約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秒必要です。フィルタタイプは「カスタム」です。私のフィルターメソッドはボトルネックではありません-'Stopwatch'クラスとパフォーマンスプロファイラーでそれをチェックしました。フィルタリングは4番目の文字の前ではありません。
少し速くする唯一の方法は、実装されたフィルター動作の代わりにTextChangedイベントを使用することです。TextChangedイベントでは、元のデータソース(Linq)をフィルター処理し、フィルター処理されたサブセットのみをAutoCompleteBoxにバインドします。
パフォーマンスを向上させるために、これから先に進む方法はありますか?または、フィルター機能を使用してデータソース(数千のエントリを含む)をAutoCompleteBoxにバインドするためのベストプラクティスは何ですか?
よろしく、ダニー