1

現在、エンティティ モデルのオブジェクト コンテキストに基づいて、新しいオブジェクト データ ソースを作成しました。次に、BindingSource と、この BindingSource に設定された DataGridView を作成しました。

TraceLine テーブルのデータにバインドされた列を追加できます。DataSource を設定すると、それらの列に値が表示されます。ただし、結合されたテーブルからデータを取得できないようです。結合を持つクエリに DataGridView をバインドするにはどうすればよいですか?

using (var entities = new MyEntities())
{
    var lines = from t in entities.Lines
                join m in entities.Methods on t.MethodHash equals m.MethodHash
                where t.UserSessionProcessId == m_SessionId
                select new
                {
                    m.Name,  // doesn't get displayed in DataGridView, but I want it to
                    t.Sequence,
                    t.InclusiveDuration,
                    t.ExclusiveDuration
                };

    dgvBindingSource.DataSource = lines;
}
4

1 に答える 1

0

考えられる問題の1つは、DataGridViewのデータソースが設計時にいずれかのタイプに設定されている可能性がありますが、実行時に、追加のメンバーを持つ匿名タイプに設定していることです。私が思い出すと、列が生成された後にデータソースを変更した場合、DataGridViewは列を再生成しません。

データソースをnullに設定し、列コレクションをクリアしてから、データソースを設定する必要がある場合があります。実際、列を自動生成するのではなく、明示的に列を作成することをお勧めします。

于 2010-06-22T05:55:26.777 に答える