Есть ли ситуации, когда содержание ContentPresenter
будет каким-то объектом, кроме UIElement
? Учитывая, что поле объявлено как объект, а не UIElement
, кажется возможным, что это будет. Однако я не могу думать о каких-либо ситуациях, где это было бы, или даже если бы это было бы справедливо.Уместно ли распространять ContentPresenter.Content для UIElement?
ContentPresenter presenter = GetTemplateChild(PART_Presenter) as ContentPresenter;
UIElement myElement = (UIElement)presenter.Content;
myElement.SomeUIMethod(); // possible InvalidOperationException?
Вы получите InvalidCastException во второй строке, а не и InvalidOperationException на третьем – Nir