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