2013-07-22 103 views
0

我正在研究驗證WPF中DataGrid中的單元格的應用程序。例如,如果單元格中存在錯誤,我正在使單元格可編輯。但是,更改的數據並未綁定到數據網格的ItemsSource。下面是我使用,使細胞可編輯時出現錯誤代碼:無法編輯DataGrid中的特定單元格WPF

DataGridRow gridRow = dgInventory.ItemContainerGenerator.ContainerFromIndex(row) as DataGridRow; 

if (gridRow != null) 
{ 
    DataGridCell cell = dgInventory.Columns[column].GetCellContent(gridRow).Parent as DataGridCell; 

    cell.BorderBrush = Brushes.Red; 
    cell.IsEditing = true; 

    cell.ToolTip = tooltip; 
} 

一旦在頁面網格負載,現在我可以編輯錯誤的細胞。但是,當我訪問ItemsSourceDataGrid時,它仍顯示相同的舊數據。該DataGrid代碼XAML是這樣的:

<DataGrid Name="dgInventory" ScrollViewer.CanContentScroll="False" IsManipulationEnabled="True" CellEditEnding="dgInventory_CellEditEnding" IsReadOnly="True" /> 

能否請您提供一種方式來編輯單元格中DataGrid。提前感謝你。

+0

能否請您包括'DataGridColumn' XAML以及 - 這將有助於瞭解如何列正在數據綁定,以及什麼類型的列他們是。另外,您的CellEditEnding是否被解僱? –

+0

沒有額外的DataGridColumn XAML。數據網格的itemssource被設置爲dataset.Tables [0] .DefaultView,並顯示網格。此外,CellEditEnding在編輯單元格後會被觸發,然後通過單擊單元格以外的區域來更改焦點。 –

回答

0

也許問題在IsReadOnly="True"? 嘗試

DataGridRow gridRow = dgInventory.ItemContainerGenerator.ContainerFromIndex(row) as DataGridRow; 

if (gridRow != null) 
{ 
    DataGridCell cell = dgInventory.Columns[column].GetCellContent(gridRow).Parent as DataGridCell; 

    cell.BorderBrush = Brushes.Red; 
    cell.IsEditing = true; 
    dgInventory.IsReadOnly = false; 

    cell.ToolTip = tooltip; 
} 

,比dgInventory_CellEditEnding集:

... 
IsReadOnly = true; 
... 
相關問題