【问题标题】:Binding Grid to a Linq Datasource from Winforms (.net)从 Winforms (.net) 将网格绑定到 Linq 数据源
【发布时间】:2009-04-14 17:22:13
【问题描述】:

回到过去(即上个月),我会将我的 winforms 网格绑定到数据集并关闭并运行。默认情况下,可以更新网格内容。 (类似于 Excel 电子表格)

但是,如果我将网格绑定到 Linq 数据源(Linq to SQL 或 Linq to Entities),我的 winforms 网格将被锁定为只读模式。如何启用更新模式?

【问题讨论】:

  • 删除了我的答案。在 DGV 中进行了一些挖掘。似乎它处理 ILists 和 IListSource 实现的方式与其他实现不同。这些进入可更新的 CurrencyManager,而其他进入不可更新的 PropertyManager。至于为什么 ToList() 失败我无法回答。祝你好运。

标签: .net winforms linq linq-to-entities grid


【解决方案1】:

您是否在投影中使用了匿名类型?即

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

(或类似的)- C# 中的匿名类型是不可变的,所以是的:它看起来是只读的。但是,regular 类(LINQ 生成的或您自己的)应该是可编辑的。唯一要记住的是在任何查询上调用.ToList()(而不是给它IEnumerable<T>/IQueryable<T> 对象)。

【讨论】:

    【解决方案2】:

    查看各个类上的GetNewBindingList 方法,以获得“更好”的绑定。

    完成后记得致电SubmitChanges

    【讨论】:

      【解决方案3】:

      找到解决方案:使用 lambda 表达式过滤实体并直接绑定到实体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-21
        • 2013-04-14
        • 1970-01-01
        • 2011-03-10
        • 2018-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多