Partilhar via


ItemsRepeater.ItemsSource Propriedade

Definição

Obtém ou define uma fonte de objeto usada para gerar o conteúdo do ItemsRepeater.

Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows).

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

Valor da propriedade

Object

Platform::Object

IInspectable

O objeto usado para gerar o conteúdo do ItemsRepeater. O padrão é nulo.

Atributos
Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackAttribute

Comentários

Use a propriedade ItemsSource para especificar a coleção a ser usada para gerar o conteúdo dos itens. Você pode definir o ItemsSource como qualquer tipo que implemente IEnumerable. Interfaces de coleção adicionais implementadas por sua fonte de dados determinam qual funcionalidade está disponível para o ItemsRepeater interagir com seus dados.

Esta lista mostra as interfaces disponíveis e quando considerar o uso de cada uma delas.

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

    • Pode ser usada para conjuntos de dados pequenos e estáticos.

      No mínimo, a fonte de dados deve implementar a interface IEnumerable / IIterable. Se isso for tudo o que é compatível, o controle iterará por tudo uma vez para criar uma cópia que pode ser usada para acessar itens por meio de um valor de índice.

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

    • Pode ser usado para conjuntos de dados estáticos somente leitura.

      Permite que o controle acesse itens por índice e evita a cópia interna redundante.

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

    • Pode ser usado para conjuntos de dados estáticos.

      Permite que o controle acesse itens por índice e evita a cópia interna redundante.

      Aviso: Alterações a lista/vetor sem implementar INotifyCollectionChanged não serão refletidas na interface do usuário.

  • System.Collections.Specialized.INotifyCollectionChanged

    • Recomendado para dar suporte à notificação de alteração.

      Permite que o controle observe e reaja a alterações na fonte de dados e reflita essas alterações na interface do usuário.

  • IObservableVector<T>

    • Dá suporte para notificação de alteração

      Como a interface INotifyCollectionChanged, permite que o controle observe e reaja a alterações na fonte de dados.

      Aviso: o Windows.Foundation.IObservableVector<T> não dá suporte a uma ação "Mover". Isso pode fazer a interface do usuário de um item perder seu estado visual. Por exemplo, um item selecionado no momento e/ou com foco em que a movimentação é obtida por uma ação de "Remover" seguida por "Adicionar" perderá o foco e não será mais selecionado.

      O Platform.Collections.Vector<T> usa IObservableVector<T> e tem essa mesma limitação. Se o suporte para uma ação "Mover" for necessário, use a interface INotifyCollectionChanged documentada acima. A classe T> ObservableCollection<do .NET usa INotifyCollectionChanged.

  • IKeyIndexMapping

    • Quando um identificador exclusivo pode ser associado a cada item. Recomendado ao usar 'Redefinir' como a ação de alteração da coleção.

      Permite que o controle recupere com muita eficiência a interface do usuário existente depois de receber uma ação de 'Redefinir' rígida como parte de um evento INotifyCollectionChanged ou IObservableVector. Depois de receber uma redefinição, o controle usará a ID exclusiva fornecida para associar os dados atuais aos elementos que já foram criados. Sem a chave para o mapeamento de índice, o controle teria que precisaria supor que precisa começar do zero na criação da interface do usuário para os dados.

As interfaces listadas acima, a não ser IKeyIndexMapping, fornecem o mesmo comportamento no ItemsRepeater que em ListView e GridView.

As interfaces a seguir em um ItemsSource habilitam uma funcionalidade especial nos controles ListView e GridView, mas atualmente não têm efeito sobre um ItemsRepeater:

Aplica-se a