似たような質問がたくさんあることを知っており、可能な解決策を探すのに多くの時間を費やしました. しかし、それを行う最も簡単な方法が何であるかはまだわかりません。
目標は、LogItems
(タイムスタンプ、重大度レベル、メッセージ) をDataGridView
タイムスタンプで並べ替えて表示し、ユーザーが重大度レベルでアイテムをフィルター処理できるようにすることです。
これがまさに私が(必要としない)必要なものです:
DataGridView
オブジェクトのリスト/コレクションへの一方向データバインディング。ユーザーがオブジェクトを編集しDataGridView
たり、オブジェクトを追加/削除したりする必要はありませんDataGridView
。ただし、DataGridView
その基になるリスト/コレクションにオブジェクトを追加または削除すると、自動的に更新されるはずです。- オブジェクトにはタイムスタンプ (
DateTime
) があり、このタイムスタンプ順に表示する必要があります。リスト自体がそれらをソートしたままにするかどうか (のようなものがSortedList<T>
あればいいのですが、存在しません)、または がソートを処理するかどうかDataGridView
はBindingSource
気にしません。ユーザーが列ヘッダーをクリックして並べ替えを設定する必要はありません。 - 1 つの列の値 (重大度) に基づく単純なフィルター処理。
ここで私が思いついたいくつかのアプローチ:
BindingList<T>
並べ替えとフィルタリングをサポートしていないため、基になるコレクションが機能しないため、a を使用します。BindingSource
基になるコレクションが並べ替えとフィルター処理をサポートしていない場合、一部のコレクションを でラップしても役に立ちません。- を実装するカスタム コレクションを作成します
IBindingListView
。これは非常に複雑に見えますが、提供される機能のサブセットのみが必要ですIBindingListView
。そして、私は怠け者です。 BindingListView
sourceforge プロジェクトを使用します。これはおそらく私が必要とするものに対して重すぎるので、サードパーティのライブラリに頼る必要がなければ頼りたくありません。
これに対する簡単で迅速な解決策は何でしょうか?