私は約30,000エントリのデータソース(Listタイプ)を持っています。大規模なデータソースを使用するとパフォーマンスに問題が発生するAutoCompleteBox
public class LocationItem
{
public string Name { get; set; };
public double Latitude { get; set; };
public double Longitude { get; set; };
public double Height { get; set; };
}
このソースをオートコンプリートボックスにバインドした後、入力された各文字にはフィルタ処理に約1〜3秒かかることがあります。フィルタの種類は「カスタム」です。私のフィルターメソッドはボトルネックではありません - 私は 'Stopwatch'クラスとパフォーマンスプロファイラーでチェックしました。フィルタリングは4番目の文字の前ではなく開始されます。
もう少し速くする唯一の方法は、実装されたフィルタの動作の代わりにTextChangedイベントを使用することです。 TextChangedイベントでは、元のデータソース(Linq)をフィルタリングし、フィルタリングされたサブセットのみをAutoCompleteBoxにバインドします。
Istそこにはパフォーマンスを向上させるために何か別の方法がありますか?または、何千ものエントリを持つデータソースをフィルタ機能付きのAutoCompleteBoxにバインドするにはどうすればよいでしょうか?
敬具、 ダニー
答えを少し詳しく説明すると役立ちます。 –