2009-04-14 16 views
1

昨日(先月)に、winformsグリッドをデータセットにバインドしてオフにして実行しました。デフォルトでは、グリッドの内容を更新することができます。 (Excelスプレッドシートに似ています)Winforms(.net)からLinqデータソースへのグリッドのバインド

しかし、私はLinqデータソース(LinqからSQLまたはLinq to Entities)にグリッドをバインドすると、winformsグリッドが読み取り専用モードにロックされます。更新モードを有効にするにはどうすればよいですか?

+0

私の答えを削除しました。 DGVで掘り下げた人がいましたか? IListsとIListSourceの実装を他のものとは違って扱うようです。これらは更新可能なCurrencyManagersに入り、他のものはPropertyManagersに入りません。 ToList()が失敗する理由については、私は答えることができません。がんばろう。 – Will

答えて

0

解決策が見つかりました:ラムダ式を使用してエンティティをフィルタリングし、エンティティに直接バインドします。

1

おそらく、プロジェクションで匿名タイプを使用していますか?つまり

select new {Foo = order.Foo, Bar = custmoer.Bar}; 

(またはそれに類するもの) - C#の匿名の型は不変なので、読んでいるようです。ただし、の標準クラス(LINQで生成されたクラスまたは自分自身で作成されたクラス)を編集可能にする必要があります。覚えておくべき唯一のことは、IEnumerable<T>/IQueryable<T>オブジェクトを与えるのではなく、任意のクエリで.ToList()を呼び出すことです。

1

「より良い」結合のための様々なクラスのGetNewBindingListメソッドを見てください。

完了したらSubmitChangesに電話してください。

関連する問題