表示させた検索結果をソートします。タイトルでソート、ページ番号でソート、数値が小さいものから順に並べたり、逆に大きな順に並べ替えることができます。

まず検索結果にページ番号を表示させましょう。

ノードが追加されたり削除されたらページ番号も変更になるかもしれません。そこでノードが追加されたり削除されたときに呼ばれる自作メソッド OnChangedSyncTreeView()を以下のように書き直します。

さてソートする要素はタイトルとページ番号です(それ以外に更新日時もあるかも)。

検索結果をソートするまえに現在選択されているListBoxに対応するノードを記憶しておきます。ソートが終わったら対応するものが選択されている状態にします。そのときにSelectedIndexChangedイベントが発生するのですが、これによって右のRichTextBoxの内容が変化しないように_isIgnoreSelectChangedをつかって対処します。