我有一个窗口,它通过反射创建控件列表,这些控件作为数据上下文绑定到 aTabControl
并表示为ContentPresenter
控件,其中内容绑定为创建的控件,这是通过使用反射完成的。
<TabControl.ContentTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding sub}" Loaded="smb_Loaded">
</ContentPresenter>
</DataTemplate>
</TabControl.ContentTemplate>
在创建之后,我需要对创建的控件(其中的每一个)做一些事情,比如订阅它们的事件或运行一些方法或线程,所以我希望在初始化或创建对象之后完成它。我试图在“初始化”或“加载”事件之后完成这些事情,但它们都只在第一次被触发,只有在我加载的第一个控件上。如果我用反射创建 3 个控件,我将有 3 个选项卡,其内容是ContentPresenters
包含该控件的。当我选择一个选项卡时,将触发该事件。如果我随后选择另一个,则在我重新运行应用程序之前根本不会触发它。