如何检查面板的 Children 来自哪里?

How to check where a Panel's Children come from?

我创建了一个自定义 Panel,其中我需要检查其 Children 是否通过手动操作集合进行管理,或者该面板是否用作 ItemsPanel ItemsControl.

这是为了防止在尝试操作 Children.

时抛出以下异常

Cannot explicitly modify Children collection of Panel used as ItemsPanel for ItemsControl. ItemsControl generates child elements for Panel.

如何区分面板的两种不同用途?

一个Panel's IsItemsHost属性可以用来检查Panel是否"is a container for user interface (UI) items that are generated by an ItemsControl".

这个 属性 可以在创建 ItemsControl 模板时手动设置,但在使用 ItemsPresenter and specifying the panel using ItemsControl's ItemsPanel property.

时似乎也设置为 true