2013-07-22 76 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; 
... 
相关问题