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