Вы можете сделать это, используя событие BeginningEdit
, чтобы проверить, соответствует ли проверка, соответствует ли ячейка условию, и отменить операцию, если нет:
В приведенном ниже примере, если ячейка уже содержит значение, она отменяет операцию, считая ее доступной только для чтения.
xaml
<DataGrid BeginningEdit="DataGrid_BeginningEdit" ItemsSource="{Binding Example, Mode=TwoWay}"/>
c#
:
private void DataGrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
{
string content = (e.EditingEventArgs.Source as TextBlock).Text;
if (!(String.IsNullOrEmpty(content)))
e.Cancel = true;
}