検索クエリに基づいて DataGrid の行を強調表示する単純な検索機能を実装しました。その要点を以下に示します。
public bool scrollToSearch(string query) {
dataGrid.SelectedItems.Clear();
for (; searchIndex < registrants.Count; searchIndex++) {
foreach (string field in registrants[searchIndex]) {
if (field.ToLower().Contains(query)) {
dataGrid.SelectedItem = registrants[searchIndex];
dataGrid.ScrollIntoView(registrants[searchIndex]);
searchIndex++;
return true;
}
}
}
}
リストで一致するものを検索し、その行を強調表示 (選択) し、スクロールして表示します。問題は、DataGrid がソートされている場合、元のソートされていないリストを検索しているため、最初の結果ではなく一見ランダムな行が強調表示されることです。代わりにソートされたリストを検索する方法はありますか?