Jak nadać styl wierszowi w ListView, który implementuje GridView
W tym przykładzie pokazano, jak stylować wiersz w kontrolce ListView korzystającej z GridViewView trybu.
Przykład
Wiersz w kontrolce ListView można stylować, ustawiając kontrolkę ItemContainerStyleListView na. Ustaw styl dla elementów, które są reprezentowane jako ListViewItem obiekty. Odwołuje ItemContainerStyleControlTemplate się do obiektów używanych do wyświetlania zawartości wiersza.
Kompletny przykład, z którego wyodrębniono poniższe przykłady, przedstawia kolekcję informacji o piosenkach przechowywanych w bazie danych XML. Każda piosenka w bazie danych ma pole klasyfikacji, a wartość tego pola określa sposób wyświetlania wiersza informacji o piosence.
W poniższym przykładzie pokazano, jak zdefiniować ItemContainerStyle obiekty ListViewItem reprezentujące utwory w kolekcji piosenek. Odwołania ItemContainerStyle do ControlTemplate obiektów określających sposób wyświetlania wiersza informacji o utworze.
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" >
<Setter Property="Template"
Value="{StaticResource Default}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding XPath=@Rating}" Value="5">
<Setter Property="Template"
Value="{StaticResource StronglyRecommended}"/>
</DataTrigger>
<DataTrigger Binding="{Binding XPath=@Rating}" Value="4">
<Setter Property="Template"
Value="{StaticResource Recommended}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
W poniższym przykładzie pokazano element ControlTemplate , który dodaje ciąg "Strongly Recommended"
tekstowy do wiersza. Ten szablon jest przywołyny w elemencie ItemContainerStyle i jest wyświetlany, gdy ocena utworu ma wartość 5 (pięć). Obiekt ControlTemplate zawiera GridViewRowPresenter obiekt, który określa zawartość wiersza w kolumnach zgodnie z definicją w trybie GridView widoku.
<ControlTemplate x:Key="StronglyRecommended"
TargetType='{x:Type ListViewItem}'>
<StackPanel Background="Beige">
<GridViewRowPresenter Content="{TemplateBinding Content}"
Columns="{TemplateBinding GridView.ColumnCollection}"/>
<TextBlock Background="LightBlue" Text="Strongly Recommended" />
</StackPanel>
</ControlTemplate>
W poniższym przykładzie zdefiniowano element GridView.
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource MyHeaderStyle}">
<GridViewColumn Header="Name"
DisplayMemberBinding="{Binding XPath=@Name}"
Width="100"/>
<GridViewColumn Header="Time"
DisplayMemberBinding="{Binding XPath=@Time}"
Width="80"/>
<GridViewColumn Header="Artist"
DisplayMemberBinding="{Binding XPath=@Artist}"
Width="80" />
<GridViewColumn Header="Disk"
DisplayMemberBinding="{Binding XPath=@Disk}"
Width="100"/>
</GridView>
</ListView.View>
Zobacz też
.NET Desktop feedback