2014-01-16 2 views
0

Мне нужно проверить, имеет ли объект свойство Content. Этот объект может быть любым: кнопкой, панелью, сеткой, страницей, ContentControl или текстовым блоком.Правильный способ проверить, имеет ли объект свойство content

Я проверял так:

if (obj is ContentControl) 
{ 
    // Yes 
} 
else 
{ 
    // No 
} 

Проблема заключается в том, что я не уверен, если это правильно. Глядя в MSDN, я вижу, что класс страницы содержит свойство Content, но он не наследуется от ContentControl. Я не ошибаюсь?

Итак, каков правильный способ проверить, имеет ли элемент управления свойство Content?

+1

реальный вопрос: что вы хотите это для. Если вы не создаете «Прикрепленное свойство» или «Поведение», для такой вещи очень мало. –

+2

Предположим, у вас есть случайный объект, у которого есть свойство с именем 'Content', но это свойство не используется таким же образом, как использует' Button' или другой элемент управления. Имя свойства ничего не говорит о том, для чего это свойство. Если что-то происходит от 'ContentControl', то вполне понятно, для чего будет использоваться это свойство. – Steve

ответ

1

Вы можете проверить, существует ли свойство:

 var propInfo = obj.GetType().GetProperty ("Content"); 
     if (propInfo != null) 
     { 
     //the propery exists 
     } 
Смежные вопросы