Просто примечание.
Я потратил день на реализацию ICustomTypeDescriptor для объектов сущностей в моем приложении, чтобы контролировать состояние только для чтения каждой сущности в отдельности.
Таким образом, каждая реализация PropertyDescriptor сохраняла ссылку на объект сущности, из которого она вышла, поэтому свойство IsReadOnly было примерно таким:
public override bool IsReadOnly
{
get { return _owner.IsReadOnly;}
}
Однако, когда я запускал код, компонент BindingSource считывал набор PropertyDescriptor из метода GetProperties () ICustomTypeDescriptor для каждой записи в наборе, однако, когда он проверял значение IsReadOnly, он проверял только полученный PropertyDescriptor с первой записи.
Полная трата времени !!!!