C# PropertyGrid Установка ReadOnlyAttribute для одного свойства объекта изменяет значение другого - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть propertygrid, в котором я показываю свойства выбранного объекта на WPF холсте. Я устанавливаю ReadOnlyAttribute для свойства во время выполнения на основе значения другого свойства.

Когда у меня есть несколько экземпляров одного и того же объекта, установка атрибута для свойства одного объекта изменяет значение в другом объекте также.

Любая помощь?

Код, используемый для изменения значения атрибута во время выполнения:

PropertyDescriptor descriptor = TypeDescriptor.GetProperties(object1.GetType())["propertyName"];
var readOnlyAttr = descriptor?.Attributes.OfType<ReadOnlyAttribute>().First();

if (readOnlyAttr != null)
{
    FieldInfo isReadOnly = readOnlyAttr.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);
    isReadOnly.SetValue(readOnlyAttr, isReadonly);
    isSuccess = true;
}
...