昔 (つまり先月) に戻ると、winforms グリッドをデータセットにバインドして、オフにして実行していました。デフォルトでは、グリッドの内容を更新できます。(Excel スプレッドシートに似ています)
しかし、グリッドを Linq データソース (Linq to SQL または Linq to Entities) にバインドすると、winforms グリッドが読み取り専用モードにロックされます。更新モードを有効にするにはどうすればよいですか?
昔 (つまり先月) に戻ると、winforms グリッドをデータセットにバインドして、オフにして実行していました。デフォルトでは、グリッドの内容を更新できます。(Excel スプレッドシートに似ています)
しかし、グリッドを Linq データソース (Linq to SQL または Linq to Entities) にバインドすると、winforms グリッドが読み取り専用モードにロックされます。更新モードを有効にするにはどうすればよいですか?
おそらく、プロジェクションで匿名型を使用していますか? すなわち
select new {Foo = order.Foo, Bar = custmoer.Bar};
(または類似) - C# の匿名型は不変であるため、はい: 読み取り専用のように見えます。ただし、通常のクラス (LINQ で生成されたクラス、または独自のクラス) は編集可能である必要があります。覚えておくべき唯一のことは、( /オブジェクト.ToList()
を与えるのではなく) 任意のクエリを呼び出すことです。IEnumerable<T>
IQueryable<T>
GetNewBindingList
「より良い」バインディングについては、さまざまなクラスのメソッドを見てください。
そして、終わったら電話SubmitChanges
することを忘れないでください。
解決策を見つけました。ラムダ式を使用してエンティティをフィルタリングし、エンティティに直接バインドします。