2016-05-09 4 views
1

は、私がd1d2への変更が自動的に反映されますDataGridViewBindDataSourceてSOTに... d1d2をバインドしたいのですが、以下の構造ジェネリックコレクションの多型のタイプパラメータとして

class A {} 
class B : A {} 
class C : A {} 
class D : A {} 
... 

// in data source class 
BindingList<B> d1; 
BindingList<C> d2; 
BindingList<D> d3; 
... 

// in datagridview class 
void BindDataSource(BindingList<A> source); 
void QueryDataSource() { 
    BindingList<A> source = (BindingList<A>)dgv.DataSource; 
    A a = source.First(...); 
} 

を考えますDataGridViewthis postから、私は上記のコードが有効ではないことを知りました。しかし、そのポストの解決策のどれも私の状況に当てはまりません。私は、次の

void BindingDataSource<T>(BindingList<T> source) where T:A; 

BindDataSourceを変更しようとしましたが、私はDataSourceをキャストすることはできませんようになりましたQueryDataSourceはコンパイルされません。全体を解決する方法はありますか?

答えて

関連する問題