如何将内容加载到动态创建的TabItems按需/延迟加载?

时间:2016-05-23 17:11:00

标签: wpf vb.net lazy-loading tabcontrol ondemand

我在我的应用中定义了一个标签控件,我正在动态添加标签项。假设我有包含大量数据的对象列表,对于每个对象,我显示5-10个选项卡。显示的排序和选项卡因对象而异。这就是我必须根据我的对象动态创建这些选项卡的原因。

就这些选项卡中的内容而言,我通常将每个选项卡的.Content属性设置为UserControl,并加载它,如下面的代码所示。

If ContainsFingerprints() Then
        Dim fingerprintT As New TabItem
        fingerprintT.Content = New FingerprintTab()
        fingerprintT.Header = "Fingerprints"
        fingerprintT.Name = "tiFingerprintTab"
        viewTab.Items.Add(fingerprintT)
End If

其中一些标签包含大量图像,并在运行时占用大量内存。这就是为什么我想在“按需”这些标签项中加载内容,也就是说,只有在选中标签时才会加载。

我可以使用制表符控件的SelectionChanged事件然后加载所需的内容但是WPF提供了更好的解决方案吗?

0 个答案:

没有答案