アプリで定義されたタブ コントロールがあり、タブ項目を動的に追加しています。大量のデータを含むオブジェクトのリストがあり、各オブジェクトに対して 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 が提供するより良い解決策はありますか?