Является ли PropertyDescriptor.IsBrowsable несовместимым с ассоциированным атрибутом Browsable()?
PropertyDescriptor
абстрактный класс, от которого могут наследоваться дескрипторы пользовательских свойств В классе есть IsBrowsable
собственность, которая, по данным MSDN:
Получает значение, указывающее, доступен ли элемент для просмотра, как указано в атрибуте BrowsableAttribute. (Унаследовано от MemberDescriptor.)
У меня вопрос, как это свойство связано с BrowsableAttribute
в PropertyDescriptor.Attributes
для связанного свойства (определяется, например, путем добавления [Browsable(false)]
декоратор в собственность?
Моя путаница возникает из-за того, что мне удалось заменить BrowsableAttribute
с PropertyDescriptor.Attributes
новый, который не соответствовал IsBrowsable
,
Обновление После ответа Марка я должен сохранить BrowsableAttribute
синхронно с IsBrowsable
? Знаете ли вы какие-либо элементы управления, которые могут смотреть на один, но не на другой?
1 ответ
Реализация PropertyDescriptor по умолчанию использует отражение и смотрит на BrowsableAttribute. Однако, если вы предоставляете свою собственную реализацию PropertyDescriptor, то вы отвечаете - есть очень мало вещей, которым нужно следовать. Если ваша пользовательская реализация использует несвязанный способ определения того, что является / не доступно для просмотра: это зависит от вашей реализации.