Como criar uma linha em um ListView que implemente um GridView
Este exemplo mostra como estilizar uma linha em um controle que usa um ListViewGridViewView modo.
Exemplo
Você pode estilizar uma linha em um controle definindo um ListViewItemContainerStyle no ListView controle. Defina o estilo para seus itens que são representados como ListViewItem objetos. O ItemContainerStyle faz referência aos ControlTemplate objetos que são usados para exibir o conteúdo da linha.
O exemplo completo, do qual os exemplos a seguir são extraídos, exibe uma coleção de informações de música armazenadas em um banco de dados XML. Cada música no banco de dados tem um campo de classificação e o valor desse campo especifica como exibir uma linha de informações sobre a música.
O exemplo a seguir mostra como definir ItemContainerStyle para os ListViewItem objetos que representam as músicas na coleção de músicas. Os ItemContainerStyle objetos de referência ControlTemplate que especificam como exibir uma linha de informações de música.
<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>
O exemplo a seguir mostra um que adiciona a cadeia de ControlTemplate caracteres "Strongly Recommended"
de texto à linha. Este modelo é referenciado ItemContainerStyle no e é exibido quando a classificação da música tem um valor de 5 (cinco). O ControlTemplate inclui um GridViewRowPresenter objeto que estabelece o conteúdo da linha em colunas conforme definido pelo GridView modo de exibição.
<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>
O exemplo a seguir define 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>
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de