[英]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.