Как сбросить значения по умолчанию для составных свойств в PropertyGrid?

352
04 февраля 2017, 06:58

У меня есть класс со свойствами в качестве объектов каких-то еще классов. Например:

    public Class Humans
    {
      public Person Human {get; set;}
      [DefaulValue("New York")]
      public string Sity {get; set;}
    }
    public struct Person
    {
      [DefaulValue("Name")]
      public string Name {get; set;}
      [DefaulValue("Surname ")]
      public string Surname {get; set;}
    }

Если я хочу сбросить значение класса Humans, то я пишу так:

    PropertyDescriptorCollection props = TypeDescriptor.GetProperties(Humans);
    foreach (PropertyDescriptor pr in props)
    {
        if (pr.Attributes.OfType<DefaultValueAttribute>().Any())
        {
            pr.ResetValue(obj);
        }
    }

В случае со свойством Sity все происходит отлично, а для свойства Human ничего не происходит. Так вот, как сбрасывать на умолчания значения таких свойств?

READ ALSO
Регулярное выражение для ФИО

Регулярное выражение для ФИО

Нужно регулярное выражение где в имени первая буква должна быть большой и другие большие буквы нужно запретить, за исключением случая когда...

512
Кэширование объектов с учетом их полей

Кэширование объектов с учетом их полей

Есть объекты, которые предоставляют данные для постройки графикаНужно построить механизм кэширования этих объектов, но не простой а с некоторой...

354
EntityFramework 6 и DB2

EntityFramework 6 и DB2

При выводе списка в представлении происходит ошибка Поле не найдено: "DB2ConnSettings_bEnableEFCaseSensitivity"

461
PHPUNIT возвращает неверный результат в теста

PHPUNIT возвращает неверный результат в теста

Например есть функция логина:

430