0

現在グリッドに表示されている行を返すメソッドがあります。

public override List<object> GetData(int startIndex, int endIndex, string[] rowSortBy, bool[] rowAscSortOrder, 
                   string[] rowGroupByOperations, string rowFilterExpression, ref int rowCount)        
    {

          List<A> list =  new List<A>();
          .. logic..

          return list;        
    }

問題は、グリッド列が動的になり、条件によっては変化し続けることです。これは、データメンバーが動的であるため、型付きクラスを使用できないことを意味します。List<object>さらに、GetDataメソッドのリターンタイプは、実際にはサードパーティのコントロールによって使用されているため、変更できません。

編集:そして、グリッド上で更新を行う必要があります。

私が考える唯一の方法は、反射を使って授業をすることです。

何か案は?

4

1 に答える 1

1

リスト内のオブジェクトにICustomTypeDescriptorを実装する必要があるようです。

このようにしてプロパティが要求され、実行時に新しいプロパティで関連データを返すことができます。

http://wraithnath.blogspot.co.uk/2011/01/implementing-icustomtypedescriptor-for.html

http://msdn.microsoft.com/en-us/magazine/cc163816.aspx

少し複雑なので、初めて理解するのに少し時間がかかりました。ただし、機能します。

于 2012-04-27T11:02:35.477 に答える