繁体   English   中英

C# WPF DataGrid 我无法编辑单元格(isReadyOnly false)

[英]C# WPF DataGrid I can't edit cells (isReadyOnly false)

我有这个数据网格:

      <DataGrid x:Name="grid1" HorizontalAlignment="Left" Height="349" Margin="10,38,0,0" VerticalAlignment="Top" Width="772" IsReadOnly="False" IsManipulationEnabled="True"  SelectionMode="Single">
      </DataGrid>

我从 Access 数据库文件中加载数据:

        ole = new OleDbConnection();
        ole.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ervin\source\repos\FeriCrm\FeriCrm\bin\Debug\data.accdb;Persist Security Info=False";
        ole.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.CommandText = "select * from [partner]";
        cmd.Connection = ole;
        OleDbDataReader rd = cmd.ExecuteReader();                      
        grid1.ItemsSource = rd; 

我可以正确查看数据库行和列,但无法编辑单元格。 我尝试手动设置 grid1.isReadOnly=false 甚至 grid1.Columns[0].isReadOnly=false。 没有任何帮助。 如何启用单元格编辑?

由于 OleDbDataReader 仅传递数据行而不保存任何要更新的数据字段,因此生成的列将 IsReadOnly 设置为 True。 您需要将数据读入某种合作伙伴 class 的 ObservableCollection 中,并为每个字段提供属性。 然后将 grid1.ItemsSource 绑定到 ObservableCollection。

在您的情况下,另一个更简单的版本是使用 DataTable:

        OleDbDataReader rd = cmd.ExecuteReader();
        DataTable dataTable = new DataTable();
        dataTable.Load(rd);
        grid1.ItemsSource = dataTable.AsDataView();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM