Правильный способ проверить, имеет ли объект свойство content

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

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

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

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

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


person Guilherme    schedule 16.01.2014    source источник
comment
реальный вопрос в том, для чего вам это нужно. Если вы не создаете Attached Property или Behavior, в этом нет необходимости.   -  person Federico Berasategui    schedule 16.01.2014
comment
Допустим, у вас есть какой-то случайный объект, у которого есть свойство с именем Content, но это свойство не используется таким же образом, как Button или другой элемент управления. Имя свойства ничего не говорит вам о том, для чего оно предназначено. Если что-то происходит от ContentControl, совершенно очевидно, для чего будет использоваться это свойство.   -  person Steve    schedule 16.01.2014


Ответы (1)


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

      var propInfo = obj.GetType ().GetProperty ("Content");
      if (propInfo != null)
      {
         //the propery exists
      }
person gomi42    schedule 16.01.2014