Heim > Artikel > Backend-Entwicklung > WPF-Sammlungssteuerung implementiert Trennzeichen (ItemsControl Separator)
In diesem Artikel wird hauptsächlich die Implementierung des Trennzeichens „ItemsControl“ im Detail vorgestellt. Interessierte Freunde können darauf verweisen, dass in WPF-Sammlungssteuerelementen häufig ein Trennzeichen eingefügt wird Jedes Sammlungselement verfügt jedoch nicht über eine direkte Implementierung verwandter Funktionen in WPF, sodass wir nur Kurven berücksichtigen können, um das Land zu retten. Nach Recherchen habe ich wahrscheinlich über die folgenden zwei Implementierungsmethoden nachgedacht.
Schreiben Sie zunächst die Datenvorlage von
ItemsControl wie folgt:
<ItemsControl ItemsSource="{Binding Source}" BorderThickness="1" BorderBrush="Blue" VerticalAlignment="Stretch"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border Name="Bd" Grid.Row="0" Height="1" Background="Red" /> <TextBlock Grid.Row="1" Text="{Binding}" /> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>Die erste
Implementierungsmethode ist die einfachste und verwendet Sammlungselemente zum Weiterleiten von PreviousData. Dies ist eine der vier Bindungsmethoden und wahrscheinlich die, die am seltensten verwendet wird. , aber es ist zu diesem Zeitpunkt praktisch, der Code lautet wie folgt:
<DataTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}"> <Setter TargetName="Bd" Property="Visibility" Value="Collapsed" /> </DataTrigger> </DataTemplate.Triggers>Die zweite
Implementierung erfolgt mit Hilfe von ItemsControls AlternationCount und Das Attribut AlternationIndex markiert die Indexnummer für das Sammlungselement und verbirgt dann das Trennzeichen des Elements mit der Indexnummer 0. Der Code lautet wie folgt:
Code kopierenDer Code lautet wie folgt:c3043b1fb826a64eaf306d157007bbfb
Binden Sie zuerst AlternationCount an die Count-Eigenschaft der Datenquelle auf
ItemsControl, und dann wird die AlternationIndex-Eigenschaft von ItemsControl zur Indexnummer der Sammlungsdatenquelle, schreiben Sie einfach die Logik in den Trigger:
<Border Name="Bd" Grid.Row="0" Height="1" Background="Red"> <Border.Style> <Style TargetType="{x:Type Border}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=(ItemsControl.AlternationIndex), RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}" Value="0"> <Setter Property="Visibility" Value="Collapsed" /> </DataTrigger> </Style.Triggers> </Style> </Border.Style> </Border>
Grenze , die Codemenge in dieser Methode ist nicht groß, und der Vorteil besteht darin, dass sie diese Funktion definitiv realisieren kann, unabhängig davon, ob sie am Anfang oder am Ende der Warteschlange eingefügt wird AlternationCount und AlternationIndex besteht darin, Funktionen wie das Ändern der Farbe alternativer Zeilen zu implementieren. Diese Funktion ist belegt. Wenn Ihre Sammlung also sowohl Trennzeichen als auch alternative Linienstile implementieren möchte, müssen Sie möglicherweise zusätzliche Attribute hinzufügen. Der Inhalt des Konverters ist jedoch auch sehr einfach. Sie können die vorherige Funktion wiederherstellen, indem Sie den Rest finden .
Das obige ist der detaillierte Inhalt vonWPF-Sammlungssteuerung implementiert Trennzeichen (ItemsControl Separator). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!