CollectionViewSource-Klasse

CollectionViewSource Class

Stellt eine Datenquelle bereit, die Unterstützung für Gruppierungen und aktuelle Elemente zu Auflistungsklassen hinzufügt.

Vererbung

Object
  DependencyObject
    CollectionViewSource

Syntax


public sealed class CollectionViewSource : DependencyObject


<CollectionViewSource .../>

Attribute

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Member

CollectionViewSourceKlasse hat diese Membertypen:

Konstruktoren

CollectionViewSourceKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
CollectionViewSource Initializes a new instance of the CollectionViewSource class.

 

Methoden

The CollectionViewSource Klasse hat diese Methoden. Es erbt auch Methoden von Object Klasse.

MethodeBeschreibung
ClearValue Clears the local value of a dependency property. (Geerbt von DependencyObject)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Geerbt von DependencyObject)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Geerbt von DependencyObject)
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Geerbt von DependencyObject)
SetValue Sets the local value of a dependency property on a DependencyObject. (Geerbt von DependencyObject)

 

Eigenschaften

Der CollectionViewSourceKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

Dispatcher

SchreibgeschütztGets the CoreDispatcher that this object is associated with. (Geerbt von DependencyObject)

IsSourceGrouped

Lese-/SchreibzugriffGets or sets a value that indicates whether source data is grouped.

IsSourceGroupedProperty

SchreibgeschütztIdentifies the IsSourceGrouped dependency property.

ItemsPath

Lese-/SchreibzugriffGets or sets the property path to follow from the top level item to find groups within the CollectionViewSource.

ItemsPathProperty

SchreibgeschütztIdentifies the ItemsPath dependency property.

Source

Lese-/SchreibzugriffGets or sets the collection object from which to create this view.

SourceProperty

SchreibgeschütztIdentifies the Source dependency property.

View

SchreibgeschütztGets the view object that is currently associated with this instance of CollectionViewSource.

ViewProperty

SchreibgeschütztIdentifies the View dependency property.

 

Hinweise

Verwenden Sie CollectionViewSource, wenn Sie Listensteuerelemente an Auflistungen binden möchten, Sie diese Auflistungen jedoch in Gruppen anzeigen und ein aktuelles Element unabhängig vom Listensteuerelement beibehalten möchten. Dies ist besonders nützlich, wenn Sie mehrere Steuerelemente an dieselbe Auflistung binden möchten und Sie das aktuelle Element in einem Steuerelement möchten, um das aktuelle Element in die anderen gebundenen Steuerelemente zu ändern. Normalerweise wird eine CollectionViewSource-Klasse als XAML-Ressource definiert und mithilfe der StaticResource-Markuperweiterung daran gebunden. Sie können die Source-Eigenschaft in CodeBehind auf einen unterstützten Auflistungstyp festlegen.

Alle Steuerelemente, die Sie zu einer gleichen CollectionViewSource binden, haben immer das gleiche aktuelle Element. Sie können programmgesteuert auf das aktuelle Element über die ICollectionView.CurrentItem-Eigenschaft des CollectionViewSource.View-Eigenschaftswerts zugreifen.

Wenn die Elemente in der Auflistung selbst Auflistungen sind oder Objekte, die Auflistungen enthalten, können Sie die Auflistungen als Gruppen innerhalb der größeren Auflistung anzeigen. Legen Sie zu diesem Zweck die IsSourceGrouped-Eigenschaft auf true fest. Wenn die Elemente Auflistungen enthalten, jedoch nicht selbst Auflistungen sind, müssen Sie auch die ItemsPath-Eigenschaft auf den Namen der Auflistungseigenschaft festlegen.

Hinweis  Das Festlegen der Source-Eigenschaft auf eine andere CollectionViewSource-Instanz wird nicht unterstützt.

Beispiele

Das folgende Codebeispiel zeigt, wie ein ListBox-Steuerelement an die Ergebnisse eine LINQ-Gruppierungsanforderung gebunden wird. In diesem Beispiel wird eine Auflistung von Teams nach Städten gruppiert und mit dem Stadtnamen als Gruppenheader angezeigt. Die vollständige Codeliste finden Sie im XAML-Datenbindungsbeispiel. Weitere Informationen zum zusätzlichen Beispielcode zur Gruppierung finden Sie im Artikel zum Beispiel für GridView-Gruppierung und SemanticZoom.


<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;


Anforderungen

Mindestens unterstützter Client

Windows 8 [Nur Windows Store-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Nur Windows Store-Apps]

Namespace

Windows.UI.Xaml.Data
Windows::UI::Xaml::Data [C++]

Metadaten

Windows.winmd

Siehe auch

Binding
Übersicht über die Datenbindung
Beispiel für XAML-Datenbindung
XAML GridView-Gruppierung und SemanticZoom-Beispiel

 

 

Anzeigen:
© 2017 Microsoft