Является ли PropertyDescriptor.IsBrowsable несовместимым с ассоциированным атрибутом Browsable()?

PropertyDescriptor абстрактный класс, от которого могут наследоваться дескрипторы пользовательских свойств В классе есть IsBrowsable собственность, которая, по данным MSDN:

Получает значение, указывающее, доступен ли элемент для просмотра, как указано в атрибуте BrowsableAttribute. (Унаследовано от MemberDescriptor.)

У меня вопрос, как это свойство связано с BrowsableAttribute в PropertyDescriptor.Attributes для связанного свойства (определяется, например, путем добавления [Browsable(false)] декоратор в собственность?

Моя путаница возникает из-за того, что мне удалось заменить BrowsableAttribute с PropertyDescriptor.Attributes новый, который не соответствовал IsBrowsable,

Обновление После ответа Марка я должен сохранить BrowsableAttribute синхронно с IsBrowsable? Знаете ли вы какие-либо элементы управления, которые могут смотреть на один, но не на другой?

1 ответ

Решение

Реализация PropertyDescriptor по умолчанию использует отражение и смотрит на BrowsableAttribute. Однако, если вы предоставляете свою собственную реализацию PropertyDescriptor, то вы отвечаете - есть очень мало вещей, которым нужно следовать. Если ваша пользовательская реализация использует несвязанный способ определения того, что является / не доступно для просмотра: это зависит от вашей реализации.

Другие вопросы по тегам