2

Когда вы создаете CollectionViewSource в разделе Resources, находится ли набор Source, загруженный при инициализации ресурсов (т. Е. Когда владелец Resources включен) или когда данные привязаны?Lazy/отложенная загрузка 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 является раскомментировать.

Смежные вопросы