Поделиться через


Инструкция по Изменению стиля строки в ListView, который реализует GridView

В этом примере демонстрируется, как изменить стиль строки в элементе управления ListView, который реализует режим GridView View.

Пример

Можно настроить стиль строки в элементе управления ListView, установив ItemContainerStyle в элементе управления ListView. Задание стиля для его элементов, представленных в виде объектов ListViewItem. ItemContainerStyle ссылается на объекты ControlTemplate, используемые для отображения содержимого строки.

Завершенный образец, из которого вытекают следующие примеры, отображает набор информации о песнях, хранящихся в базе XML. Каждая песня в базе данных имеет поле оценки, и значение этого поля определяет способ отображения строки с информацией о песне.

В следующем примере показано, как определить ItemContainerStyle для объектов ListViewItem, представляющих песни в наборе. ItemContainerStyle ссылается на объекты ControlTemplate, задающие способ отображения строки с информацией о песне.

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

В следующем примере показан ControlTemplate, который добавляет строку текста "Strongly Recommended" к строке таблицы. Этот шаблон ссылается на ItemContainerStyle и отображает, если оценка песни имеет значение 5 (пять). ControlTemplate содержит объект GridViewRowPresenter, который помещает содержимое строки в столбцы так, как они определены режимом представления GridView.

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

В следующем примере определяется 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>

См. также

Ссылки

ListView

GridView

Основные понятия

Общие сведения об элементе управления ListView

Стилизация и использование шаблонов

Другие ресурсы

Практические руководства, посвященные ListView