CollectionViewSource Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un'origine dati che aggiunge il supporto di raggruppamenti e elementi correnti alle classi di raccolta.
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 .../>
- Ereditarietà
- Attributi
Esempio
Suggerimento
Per altre informazioni, indicazioni sulla progettazione ed esempi di codice, vedere Zoom semantico.
L'app WinUI 3 Gallery include esempi interattivi della maggior parte dei controlli, delle funzionalità e delle funzionalità winUI 3. Ottenere l'app da Microsoft Store o ottenere il codice sorgente in GitHub.
Nell'esempio di codice seguente viene illustrato come associare un controllo ListBox ai risultati di una query LINQ di raggruppamento. In questo esempio una raccolta di team viene raggruppata in base alla città e visualizzata con il nome della città come intestazioni di gruppo. Per l'elenco di codice completo, vedere l'esempio di data binding XAML.
<Grid>
<Grid.Resources>
<CollectionViewSource x:Name="groupInfoCVS" IsSourceGrouped="true"/>
</Grid.Resources>
<ListBox x:Name="lbGroupInfoCVS"
ItemsSource="{Binding Source={StaticResource groupInfoCVS}}">
<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;
Commenti
Usare CollectionViewSource quando si desidera associare i controlli elenco alle raccolte, ma si desidera visualizzare tali raccolte in gruppi e mantenere un elemento corrente indipendente dal controllo elenco. Ciò è particolarmente utile quando si desidera associare più controlli alla stessa raccolta e si vuole che l'elemento corrente in un controllo cambi l'elemento corrente negli altri controlli associati. In genere si definisce Un oggetto CollectionViewSource come risorsa XAML e lo si associa usando l'estensione di markup {StaticResource}. È quindi possibile impostare la proprietà Source nel code-behind su un tipo di raccolta supportato.
Tutti i controlli associati alla stessa CollectionViewSource avranno sempre lo stesso elemento corrente. È possibile accedere all'elemento corrente a livello di codice tramite la proprietà ICollectionView.CurrentItem del valore della proprietà CollectionViewSource.View .
Se gli elementi dell'insieme sono raccolte o sono oggetti contenenti raccolte, è possibile visualizzare le raccolte come gruppi all'interno della raccolta più grande. A tale scopo, impostare la proprietà IsSourceGrouped su true. Se gli elementi contengono raccolte ma non sono raccolte, è necessario impostare anche la proprietà ItemsPath sul nome della proprietà raccolta.
Nota
L'impostazione della proprietà Source su un'altra istanza di CollectionViewSource non è supportata.
Costruttori
CollectionViewSource() |
Inizializza una nuova istanza della classe CollectionViewSource . |
Proprietà
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto |
IsSourceGrouped |
Ottiene o imposta un valore che indica se i dati di origine sono raggruppati. |
IsSourceGroupedProperty |
Identifica la proprietà di dipendenza IsSourceGrouped . |
ItemsPath |
Ottiene o imposta il percorso della proprietà da seguire dall'elemento di primo livello per trovare i gruppi all'interno di CollectionViewSource. |
ItemsPathProperty |
Identifica la proprietà di dipendenza ItemsPath . |
Source |
Ottiene o imposta l'oggetto raccolta da cui creare la visualizzazione. |
SourceProperty |
Identifica la proprietà Di dipendenza di origine . |
View |
Ottiene l'oggetto view attualmente associato a questa istanza di CollectionViewSource. |
ViewProperty |
Identifica la proprietà Visualizza dipendenza. |
Metodi
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva. (Ereditato da DependencyObject) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject. (Ereditato da DependencyObject) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject. (Ereditato da DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |