これは私を最も近い壁に追いやっています。List<MyClass>
複数のエントリ (MyList と呼びましょう) を持つオブジェクトがあり、DataGridView
コントロールがあります。コントロールの DataSource プロパティを MyList に設定できます。MyList のすべての要素を取得し、MyClass オブジェクトのメンバーごとに個別の列を使用しています。メンバーのいずれかを変更すると、デバッガーを使用して MyList を調べ、変更された値を確認できます。
しかし、MyList に 10,000 個のエントリがあり、そのうちの 10 個だけを見たいとします。LINQ to Objects を使用して、次のようにリストをフィルター処理できます。
query = from myObect
in MyList
where SomeField == SomeGoodValue select new {myObject.SomeMember};
MyDataGridView.DataSource = query.ToList();
これにより、必要なデータが表示されます (この場合、各オブジェクトの 1 つのメンバーが選択されます) が、データを編集することはできなくなります。
フィルタリングされたリストを に取得しDataGridView
、ビュー コントロールを編集可能にする方法はありますか? ブロックによって生成された匿名型を使用すると、new
これが不可能になることがわかっています。あれは正しいですか?