C# 在WPF中创建包含用户控件的选项卡项的有效方法

C# 在WPF中创建包含用户控件的选项卡项的有效方法,c#,wpf,initialization,C#,Wpf,Initialization,我有一个选项卡控件和许多选项卡项,它们是通过编程填充的,并且包含一个自定义控件。在创建选项卡控件时,实例化每个自定义控件,并对每个用户控件调用initializeComponent 我怀疑这是一种不好的方法,因为某些用户控件可能包含大量数据、初始化数据库连接等。我希望尽可能提高效率。我想做的是最大限度地减少每个用户控件所做的工作,直到它所在的选项卡被实际选中并对用户可见为止 在四处挖掘之后,我发现了折叠控件的延迟初始化细节。我已经设法让我的标签工作,但在进一步挖掘之后,我设法找到了加载的和卸载的

我有一个选项卡控件和许多选项卡项,它们是通过编程填充的,并且包含一个自定义控件。在创建选项卡控件时,实例化每个自定义控件,并对每个用户控件调用
initializeComponent

我怀疑这是一种不好的方法,因为某些用户控件可能包含大量数据、初始化数据库连接等。我希望尽可能提高效率。我想做的是最大限度地减少每个用户控件所做的工作,直到它所在的选项卡被实际选中并对用户可见为止

在四处挖掘之后,我发现了折叠控件的延迟初始化细节。我已经设法让我的标签工作,但在进一步挖掘之后,我设法找到了
加载的
卸载的
事件。通过从用户控件构造函数中删除
initializeComponent
并将其添加到加载的
事件处理程序中,我是否能够实现延迟初始化

理想情况下,我希望能够在
卸载的
事件触发时取消初始化用户控件,直到下次
加载的
事件触发。有没有办法逆转初始化Component期间发生的xaml加载

我意识到这可能不是一个微不足道的答案,但我将感谢任何指导/帮助


如果您需要更多信息,请告诉我

您想支持按需加载数据(当用户选择某个选项卡时)并在用户选择其他选项卡时卸载数据吗?我想做的是在用户选择该选项卡时初始化控件。然后在用户离开选项卡时“卸载”xaml。