CollectionViewSource Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma fonte de dados que adiciona suporte a agrupamento e item atual a classes de coleção.
public ref class CollectionViewSource sealed : DependencyObject
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CollectionViewSource final : DependencyObject
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CollectionViewSource : DependencyObject
Public NotInheritable Class CollectionViewSource
Inherits DependencyObject
<CollectionViewSource .../>
- Herança
- Atributos
Exemplos
Tip
Para obter mais informações, diretrizes de design e exemplos de código, consulte zoom semântico.
O aplicativo Galeria da WinUI 3 inclui exemplos interativos da maioria dos controles, recursos e funcionalidades da WinUI 3. Obtenha o aplicativo na Microsoft Store ou obtenha o código-fonte no GitHub.
O exemplo de código a seguir demonstra como associar um controle ListBox aos resultados de uma consulta LINQ de agrupamento. Neste exemplo, uma coleção de equipes é agrupada por cidade e exibida com o nome da cidade como cabeçalhos de grupo. Para obter a listagem de código completa, consulte o exemplo de associação de dados XAML.
<Grid>
<Grid.Resources>
<CollectionViewSource x:Name="groupInfoCVS" IsSourceGrouped="true"/>
</Grid.Resources>
<ListBox x:Name="lbGroupInfoCVS"
ItemsSource="{Binding Source={StaticResource groupInfoCVS.View}}">
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="{Binding Color}"
Width="200" CornerRadius="10" HorizontalAlignment="Left">
<TextBlock Text="{Binding Name}"
Style="{StaticResource DescriptionTextStyle}"
HorizontalAlignment="Center" FontWeight="Bold"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Teams teams = new Teams();
var result =
from t in teams
group t by t.City into g
orderby g.Key
select g;
groupInfoCVS.Source = result;
Comentários
Use CollectionViewSource quando quiser associar controles de lista a coleções, mas você deseja exibir essas coleções em grupos e manter um item atual independente do controle de lista. Isso é particularmente útil quando você deseja associar vários controles à mesma coleção e deseja que o item atual em um controle altere o item atual nos outros controles associados. Normalmente, você define um CollectionViewSource como um recurso XAML e associa a ele usando a extensão de marcação {StaticResource}. Em seguida, você pode definir sua propriedade Source em code-behind para um tipo de coleção com suporte.
Todos os controles que você associar ao mesmo CollectionViewSource sempre terão o mesmo item atual. Você pode acessar o item atual programaticamente por meio da propriedade ICollectionView.CurrentItem do valor da propriedade CollectionViewSource.View .
Se os itens da coleção forem coleções em si ou forem objetos que contêm coleções, você poderá exibir as coleções como grupos dentro da coleção maior. Para fazer isso, defina a propriedade IsSourceGrouped comotrue. Se os itens contiverem coleções, mas não forem coleções em si, você também deverá definir a propriedade ItemsPath como o nome da propriedade da coleção.
Note
Não há suporte para a configuração da propriedade Source para outra instância collectionViewSource.
Construtores
| Nome | Description |
|---|---|
| CollectionViewSource() |
Inicializa uma nova instância da classe CollectionViewSource . |
Propriedades
| Nome | Description |
|---|---|
| Dispatcher |
Sempre retorna |
| DispatcherQueue |
Obtém o |
| IsSourceGrouped |
Obtém ou define um valor que indica se os dados de origem são agrupados. |
| IsSourceGroupedProperty |
Identifica a propriedade de dependência IsSourceGrouped . |
| ItemsPath |
Obtém ou define o caminho da propriedade a seguir do item de nível superior para localizar grupos dentro do CollectionViewSource. |
| ItemsPathProperty |
Identifica a propriedade de dependência ItemsPath . |
| Source |
Obtém ou define o objeto de coleção do qual criar essa exibição. |
| SourceProperty |
Identifica a propriedade de dependência de origem . |
| View |
Obtém o objeto de exibição que está atualmente associado a esta instância de CollectionViewSource. |
| ViewProperty |
Identifica a propriedade Exibir dependência. |
Métodos
| Nome | Description |
|---|---|
| ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria em casos em que uma animação não está ativa. (Herdado de DependencyObject) |
| GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em um DependencyProperty específico nesta instância dependencyObject . (Herdado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |