1

グリッド ビュー ユーザー コントロールを作成しています。LinQ 結果セットから列数と列名を取得する方法を知りたいです。これは、動的グリッド ビューを作成するために使用されます。

私がここに持っているのは、これを持つ1つのクラスです:

var myPerson = from persons in myLinQ.SamplePersons
               select persons;

私のグリッドビューには、結果セットを受け取るこのプロパティがあります。

public IEnumerable<Object> SourceLinQ { get; set; }

これを行う方法はありますか?

4

1 に答える 1

2

このようなものはどうですか:

var resultType =
    query.GetType() 
         .GetInterfaces()
         .Where(x => x.IsGenericType &&
                     x.GetGenericTypeDefinition() == 
                         typeof(IEnumerable<>)
         )
         .Single()
         .GetGenericArguments()
         .Single();

それで:

var columns = resultType.GetProperties();
int numberOfColumns = columns.Length;
string[] columnNames = columns.Select(column => column.Name)
                              .ToArray();

これはテストされておらず、コンパイルできるかどうかさえわかりません (現在、手元にコンパイラがありません。申し訳ありません)。

于 2011-07-25T02:54:25.020 に答える