というインターフェースがありますIFilterDataSourceAdapter。IEnumrable<T>このインターフェイスは、着信データ ソース ( 、iCollectionViewまたはDataTableまたは)に適応するためのエンドポイントを公開し、DataViewそれらXmlDocumentを直感的にフィルタリングする機能を提供します。
- データソースからのフィールドの名前を受け入れます。
FilterFields3 つのプロパティを公開するそれぞれのリストを生成します- フィールドの名前
Typeフィールドに基づいて演算子リストをフィルタリングします - 等しい、含む、より小さいなど。- 指定された値フィールド。
GUI は、この
FilterFieldリストを使用してフィルター パネルを表示できます。ICommandアダプターは、GUI からフィルター呼び出しを実行するために独自のものを提供します。
だからthwアダプターでは、私は次のことをしたい
- 着信データソースが次のタイプの場合、フィルターが適用されたときにLinq 式
IEnumrable<SomeClass>を生成し、クエリされたリストを公開します。AsQueryable()IEnumrable<SomeClass> - 着信データソースが次のタイプの場合、デリゲート
ICollectionViewを作成Filterしてコレクション ビューを更新します。 - 入力データソースがタイプの場合、
DataTableまたは文字列ベースのクエリDataViewを生成DataFilterし、データ テーブルまたはデータ ビューを更新します。 - 入力データソースがタイプの場合、フィルターされた式とリスト
XDocumentが生成されます。XPathXElements
上記のタイプのデータ ソースに制約されていることに基づいてこれを実行し、それに応じてコマンドの実行Genericsも区別したいと考えています。Filter
T がまたは またはまたはまたはIFilterDataSourceAdapter<T>のいずれかであることに基づいて、単一のインターフェイスをそのメンバー (フィールドと関数) に対して制約することはできますか?IEnurable<SomeClass>ICollectionViewDataTableDataViewXDocument
編集:
私の現在の実装は、実際にはデータソースの種類ごとに 5 種類の asbtract アダプターであり、正常に動作しています。それらはすべて実装しIFilterDataSourceAdapterます。IFilterDataSourceAdapter<T>しかし、各アダプター実装の設計に適しているよりも、制約を使用して作成できる可能性があると思います。だから、私が持っているものはすでに大丈夫かもしれません。
私は物事を考えすぎているかもしれません!!!