AllTags
に何千もの要素が含まれている場合は、非効率的だと思います。また、おそらく、TextChanged
は、キーボードをタップするたびにイベントが起動し、データの読み込みが頻繁になり、アプリの動作が遅くなる可能性があります。 このような場合にReactive Extensionsを見てみることをお勧めします。 Rxを使用すると、ユーザータイプが非常に高速な場合にデータの更新を簡単に遅延させることができます。 Where
の最初の20要素。
var searchObservable = Observable.FromEventPattern(s => box.TextChanged += s, s => box.TextChanged -= s)
.Throttle(TimeSpan.FromMilliseconds(400))
.Select(result =>
{
var textBox = result.Sender as AutoSuggestBox;
return textBox.Text;
}
);
searchObservable
.DistinctUntilChanged()
.ObserveOnDispatcher()
.Subscribe(searchString =>
{
//Select elements from 'AllTags' here, this code will be launched with 400ms delay (throttle) when user is typing fast.
}
この例は非常に一般的ですが、あなたはそれをベースにすることができます。
一見したところ、Rxは難しく見えますが、それについてはtopicsとtutorialsがたくさんあります。