无法编辑DataGrid WPF中的特定单元格

时间:2013-07-22 14:16:31

标签: c# wpf datagrid

我正在开发一个验证WPF中DataGrid中的单元格的应用程序。例如,如果单元格中存在错误,我正在使单元格可编辑。但是,更改的数据未绑定到数据网格ItemsSource。以下是我用于在出现错误时使单元格可编辑的代码:

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;
}

网页加载网格后,我现在可以编辑错误的单元格。但是,当我访问ItemsSource的{​​{1}}时,它仍会显示相同的旧数据。 XAML中的DataGrid代码是:

DataGrid

您能否为我提供一种在<DataGrid Name="dgInventory" ScrollViewer.CanContentScroll="False" IsManipulationEnabled="True" CellEditEnding="dgInventory_CellEditEnding" IsReadOnly="True" /> 中修改单元格的方法。提前感谢你。

1 个答案:

答案 0 :(得分: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;
...