25

IBindingListView&IBindingListインターフェイスを実装し、フィルタリングおよび検索機能を提供するジェネリック コレクション クラスの適切な実装を提案できる人はいますか?

現在のオプションは次のとおりです。

  • 他の誰かが書いてテストしたクラスを使用する
  • から継承しBindingList<T>IBindingListViewインターフェイスを実装する
  • IBindingListViewと を実装して、ゼロからカスタム コレクションを作成しIBindingListます。

明らかに、最初のオプションが私の好みの選択です。

4

3 に答える 3

24

数年前の MSDN フォーラムの古い投稿で見つけた実装を使用して構築しましたが、最近、もう一度検索してBindingListViewという sourceforge プロジェクトを見つけました。見た目はかなりいいです。ハッキングされたバージョンを置き換えるためにまだ引き込んでいません。

ナゲットパッケージ:Equin.ApplicationFramework.BindingListView

コード例:

var lst = new List<DemoClass>
{
    new DemoClass { Prop1 = "a", Prop2 = "b", Prop3 = "c" },
    new DemoClass { Prop1 = "a", Prop2 = "e", Prop3 = "f" },
    new DemoClass { Prop1 = "b", Prop2 = "h", Prop3 = "i" },
    new DemoClass { Prop1 = "b", Prop2 = "k", Prop3 = "l" }
};
dataGridView1.DataSource = new BindingListView<DemoClass>(lst);
// you can now sort by clicking the column headings 
//
// to filter the view...
var view = (BindingListView<DemoClass>)dataGridView1.DataSource;            
view.ApplyFilter(dc => dc.Prop1 == "a");
于 2008-10-03T01:23:31.500 に答える
4

方法 2 および 3 の舞台裏のヘルプは次のとおりです: Windows フォーム データ バインディングのフィルター処理の実装

http://www.microsoft.com/downloads/details.aspx?FamilyID=4af0c96d-61d5-4645-8961-b423318541b4&displaylang=en

于 2010-05-19T20:18:41.100 に答える
1

私が考えることができるいくつかの解決策:

  1. SubSonic ProjectBindlingList<T>には、オープン ソースである非常に優れた実装があります。ただし、実装を使用するには、SubSonic バイナリ全体を使用する必要がある場合があります。

  2. Power Collectionsプロジェクトのクラスを楽しんで使用しています。そこにある基本コレクションの 1 つから継承して実装するのはかなり簡単IBindingListViewです。

于 2008-08-26T22:59:22.610 に答える