簡體   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