我有一个选项卡控件,其中每个选项卡项都是自定义的用户控件。问题是每当程序启动时,每个单独的控件都会被初始化和加载。然后,当切换到选项卡时,它必须重新加载。
我已经改变了标签项的加载方式,如下所示。这可以防止用户控件在被点击之前初始化和加载(这是首选):
<TabControl>
<TabItem>
<TabItem.ContentTemplate>
<DataTemplate>
<local:ctlHome />
</DataTemplate>
</TabItem.ContentTemplate>
</TabItem>
<TabItem>
<TabItem.ContentTemplate>
<DataTemplate>
<local:ctlTwo />
</DataTemplate>
</TabItem.ContentTemplate>
</TabItem>
...
</TabControl>
当我第一次推出这个时,每次我切换到一个新选项卡时,它都会调用构造函数 -> 卸载上一个选项卡 -> 加载新选项卡,这很棒。它只会调用一次构造函数,并且每当我重新选择选项卡时,它只会按预期卸载-> 加载。
现在,每次我选择一个选项卡时,它都会调用构造函数并重新初始化整个控件。我不确定为什么它不再将标签保留在内存中。
使用此方法初始化后,有什么方法可以将用户控件保留在内存中?