DatagridView
これで、オブジェクトのリストへのバインドができました。これで問題ありません。私がやっていることは、一度に 10 ほどの結果を一覧表示することです。結果は、ソースから結果を取り出して表示するだけの [次へ] ボタンと [前へ] ボタンでナビゲートできます。
問題は、Datagrid ビューでクリックされた列によってソースを並べ替えたいということです。その時点で表示されている結果だけでなく、すべての結果です。
やっと近づき始めました。ソースを比較し、データ値の呼び出しに使用されている列の名前で順序を設定することもできます。私が知る必要があるのは、データ型を自動的に設定できるかということです:
AppSettings.Instance.SearchResults.Sort(
new Comparison<SearchResult>(
(x, y) =>
((Int32) x.GetType().GetProperty("Links").GetValue(x, null)).CompareTo(
((Int32) y.GetType().GetProperty("Links").GetValue(y, null)))));
ここでは、プロパティを Int である Links に設定しています。CompareTo
であることを知っていても、値を変換せずに使用することはできませんInt32
。私が比較するいくつかの値は型にDateTime
なるので、今は非常に近いので、データ型を動的に比較して取得できるかどうかを知る必要があります。
まとめ - 動的に呼び出されるプロパティ値のデータ型を自動的に識別したいと考えています。