如何在 WinForm 中的 DataGridViewColumnCollection 中使用 IQueryable 类型
我想将 DataGridView 的列设置为只读(除了一两列之外)。
我正在尝试这样做。
dgv.Columns.AsQueryable().ForEach(col=>col.ReadOnly=true);
但我发现这些扩展方法在 DataGridViewColumnCollection 中不可用,
我怎样才能通过这种方式做同样的事情
I want to set DataGridView's columns to ReadOnly except one or two columns.
I was trying to do this.
dgv.Columns.AsQueryable().ForEach(col=>col.ReadOnly=true);
But I found that these extension methods are not available at DataGridViewColumnCollection
How can I do the same by this way
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
LINQ 的最初想法不是修改现有集合,而是返回新集合,因此像
ForEach
这样的方法不属于默认的 LINQ 方法。您可以轻松地编写自己的 ForEach,例如:
因此您的代码将变为:
BTW...
将其编写为 LINQ 扩展确实值得,因为使用 2 行旧的命令式代码就可以做同样的事情?
The original idea of LINQ is not to modify existing collections, but to return new ones, so methods like
ForEach
are not among the default LINQ methods.You could easily write your own ForEach like:
and so your code would become:
BTW...
it is really worthwhile writing it as LINQ extension, when with 2 lines of old imperative-school code you can do the same ?
ForEach 方法在 DataGridViewColumnCollection 和 IQueryable 接口中均未实现。 这里是关于来自埃里克·利珀特的博客。
如果您需要此功能,您可以轻松实现扩展方法
,然后使用它:
但是,我认为,迭代抛出列要容易得多。
ForEach method isn't implemented neither in DataGridViewColumnCollection nor in IQueryable interface. Here is the post about it from Eric Lippert's blog.
If you need this functionality you can easily implement extension method
And then use it:
But, I think, it's much more easier just to iterate throw the columns.