2

Resources部分中創建CollectionViewSource時,是否在資源初始化時(即,在登錄的持有者爲Resources時)或綁定了數據時加載了集合Source延遲加載CollectionViewSource?

是否有一種xamly的方式來製作CollectionViewSource延遲加載?遞延負荷?明確的負荷?

回答

0

答案是,只要沒有請求,CollectionViewSource不會初始化它的Source屬性!

這裏是我的測試例子:

<Window 
    x:Class="MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:src="clr-namespace:WpfApplication2"> 
    <Window.Resources> 
    <CollectionViewSource x:Key="mySource"> 
     <CollectionViewSource.Source> 
     <src:Collection /> 
     </CollectionViewSource.Source> 
    </CollectionViewSource> 
    </Window.Resources> 
    <!--ListView ItemsSource="{Binding Source={StaticResource mySource}}"/--> 
</Window> 

Imports System.Collections.ObjectModel 
Imports System.ComponentModel 

Public Class Collection : Inherits ObservableCollection(Of String) 
    Public Sub New() 
    If Not DesignerProperties.GetIsInDesignMode(New DependencyObject) Then End 

    For i = 1 To 10 
     Add("Item " & i) 
    Next 
    End Sub 
End Class 

結果:項目關閉下,只有當ListView是註釋。