为什么我的WPF数据网格是只读的?

本文关键字:只读 网格 数据网 我的 WPF 数据 为什么 | 更新日期: 2023-09-27 18:09:56

我创建了一个带有选项卡控件的WPF桌面项目。每个选项卡上都有多个DataGrid控件。我希望能够编辑其中的一些并添加新行,但所有这些都是只读的。我检查和datagrid IsReadOnly属性是假的,但所有列的IsReadOnly属性是真的。我尝试在调试模式下将列的IsReadOnly属性设置为false,而程序暂停,但它们保持设置为true。我怀疑数据绑定中的某些东西迫使列变为只读,但我不知道是什么。我绑定到实体框架6.0对象。我使用相同的数据对象创建了一个带有DataGrid的新测试项目,并且该DataGrid可以被编辑。我不明白有什么不同。有很多涉及的代码,我不确定在这里张贴什么将是有帮助的。有人知道为什么项目中的数据网格都不能编辑吗?

编辑:这是一些app.config文件。.NET Framework设置为4.5

  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

为什么我的WPF数据网格是只读的?

我想我找到了这个问题的答案。下面是我的数据绑定。我在select子句中创建了一个匿名对象。显然,DataGrid不知道如何编辑它。如果我把它改为。select(0 => 0),那么它是可编辑的。我想我可以为我想要编辑的记录定义一些对象,或者只是使用EF类对象。

var oQuery = oContext.EntityOwners
.Where(o => o.EntityEIN == sEIN)
.Select(o => new { Delete = "Delete", OwnerEIN = o.OwnerEIN, X_pound_X_Shares = o.Shares, _EIN = o.OwnerEIN });