다음을 통해 공유


ItemsRepeater.ItemsSource 속성

정의

ItemsRepeater의 콘텐츠를 생성하는 데 사용되는 개체 원본을 가져오거나 설정합니다.

이 설명서는 UWP용 WinUI 2에 적용됩니다(Windows 앱 SDKWinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

public:
 property Platform::Object ^ ItemsSource { Platform::Object ^ get(); void set(Platform::Object ^ value); };
/// [get: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [set: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
IInspectable ItemsSource();

void ItemsSource(IInspectable value);
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [get: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [set: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
IInspectable ItemsSource();

void ItemsSource(IInspectable value);
public object ItemsSource { [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] get; [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] set; }
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
public object ItemsSource { [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] get; [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] set; }
Public Property ItemsSource As Object

속성 값

Object

Platform::Object

IInspectable

ItemsRepeater의 콘텐츠를 생성하는 데 사용되는 개체입니다. 기본값은 null입니다.

특성
Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackAttribute

설명

항목의 콘텐츠를 생성하는 데 사용할 컬렉션을 지정하려면 ItemsSource 속성을 사용합니다. IEnumerable을 구현하는 모든 형식으로 ItemsSource를 설정할 수 있습니다. 데이터 원본이 구현하는 추가 컬렉션 인터페이스에 따라 ItemsRepeater가 데이터와 상호 작용하는 데 사용할 수 있는 기능이 결정됩니다.

이 목록은 사용 가능한 인터페이스과 각 인터페이스를 언제 사용하는지 보여줍니다.

  • Ienumerable< T> (.NET) / IIterable<T>

    • 작은 정적 데이터 세트에 사용할 수 있습니다.

      적어도 데이터 원본이 IEnumerable/IIterable 인터페이스를 구현해야 합니다. 이 외에는 지원되지 않는 경우 컨트롤은 모든 항목을 한 번씩 반복하여 인덱스 값을 통해 항목에 액세스할 때 사용할 수 있는 복사본을 만듭니다.

  • IReadonlyList< T> (.NET) / IVectorView<T>

    • 정적 읽기 전용 데이터 세트에 사용할 수 있습니다.

      컨트롤이 인덱스를 통해 항목에 액세스할 수 있게 해주고 중복 내부 복사를 방지합니다.

  • IList< T> (.NET) / IVector<T>

    • 정적 데이터 세트에 사용할 수 있습니다.

      컨트롤이 인덱스를 통해 항목에 액세스할 수 있게 해주고 중복 내부 복사를 방지합니다.

      경고: INotifyCollectionChanged를 구현하지 않고 목록/벡터를 변경하면 UI에 반영되지 않습니다.

  • System.Collections.Specialized.INotifyCollectionChanged

    • 변경 알림을 지원하려면 이 인터페이스를 사용하는 것이 좋습니다.

      컨트롤이 데이터 원본의 변경 내용을 관찰하고 그에 따라 대응할 수 있게 해주며 변경 내용을 UI에 반영합니다.

  • IObservableVector<T>

    • 변경 알림을 지원합니다.

      INotifyCollectionChanged 인터페이스와 마찬가지로, 컨트롤이 데이터 원본의 변경 내용을 관찰하고 그에 따라 대응할 수 있게 해줍니다.

      경고: Windows.Foundation.IObservableVector<T>는 '이동' 작업을 지원하지 않습니다. 이로 인해 항목의 UI가 시각적 상태를 잃게 될 수 있습니다. 예를 들어 현재 선택되고/되었거나 'Remove' 뒤에 'Add'를 사용하여 이동이 수행되는 곳에 포커스가 있는 항목은 포커스를 잃게 되고 더 이상 선택되지 않습니다.

      Platform.Collections.Vector<T>는 IObservableVector<T>를 사용하며 동일한 제한이 적용됩니다. '이동' 작업에 대한 지원이 필요한 경우 위에 설명된 INotifyCollectionChanged 인터페이스를 사용합니다. .NET ObservableCollection<T> 클래스는 INotifyCollectionChanged를 사용합니다.

  • IKeyIndexMapping

    • 고유 식별자를 각 항목에 연결할 수 있는 경우. 컬렉션 변경 작업으로 '다시 설정'을 사용하는 경우에 권장합니다.

      INotifyCollectionChanged 또는 IObservableVector 이벤트의 일부로 '다시 설정' 작업을 수신한 후 컨트롤이 매우 효율적으로 기존 UI를 복구할 수 있게 해줍니다. 다시 설정을 수신한 후 컨트롤은 제공된 고유 ID를 사용하여 현재 데이터를 이미 만들어진 요소와 연결합니다. 인덱싱할 키 없이 컨트롤을 매핑하는 경우 데이터의 UI를 만들 때 처음부터 다시 시작해야 하는 것으로 가정합니다.

IKeyIndexMapping을 제외하고 위에 나열된 인터페이스는 ListView 및 GridView와 똑같은 동작을 ItemsRepeater에서도 제공합니다.

ItemsSource의 다음 인터페이스는 ListView 및 GridView 컨트롤의 특수 기능을 사용할 수 있게 해주지만, 현재는 ItemsRepeater에 아무 영향도 미치지 않습니다.

적용 대상