ObservableCollectionをSortしてListViewで表示2016年03月01日 18:21


サーバ名でSortしたListView

SSDPで集めてきたメディアサーバをListViewで一覧表示すると、応答のあった順になるので、毎回、並び順が変わる。操作性を考えると、いつも同じ順のほうがいい。

ListViewの表示内容は、メディアサーバと通信して集めるので、サーバからの応答を受けSourceを更新し、更新イベントを発生させて書き換える。このため、Sourceには、ObservableCollectionを用いるが、OrderByやGroupByといった並び替えの機能が用意されていない。

Sort機能を入れたObservableCollection

探してみると、ArrayListのAdapterでくるんであげるのがいいらしい。intやStringの例はすぐに見つかるが、少し込み入ったclassの例は見つからないので、記しておく。

上の例では、IComparerを継承し、MediaServerクラスのNameプロパティを比較するクラスを設け、ArrayListのSortに用いて並び替える。結果、最初の図のようにListViewの表示順を、サーバ名順にできた。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://c5d5e5.asablo.jp/blog/2016/03/01/8035562/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。