방법: GridView를 구현하는 ListView 행의 스타일 지정

이 예제에서는 GridView View 모드를 구현하는 ListView 컨트롤의 행에 스타일을 지정하는 방법을 보여 줍니다.

예제

ListView 컨트롤에 ItemContainerStyle을 설정하여 ListView 컨트롤의 행에 스타일을 지정할 수 있습니다. ListViewItem 개체로 나타나는 해당 항목에 대해 스타일을 설정하십시오. ItemContainerStyle은 행 내용을 표시하는 데 사용되는 ControlTemplate 개체를 참조합니다.

다음 예제가 포함되어 있는 원래의 전체 샘플에서는 XML 데이터베이스에 저장된 곡 모음집 정보를 표시합니다. 데이터베이스의 각 곡에는 순위 필드가 있으며 이 필드의 값은 곡 정보 행의 표시 방법을 지정합니다.

다음 예제에서는 곡 모음집의 곡을 나타내는 ListViewItem 개체에 대해 ItemContainerStyle을 정의하는 방법을 보여 줍니다. 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>

다음 예제에서는 행에 "Strongly Recommended"라는 텍스트 문자열을 추가하는 ControlTemplate을 보여 줍니다. 이 템플릿은 ItemContainerStyle에 의해 참조되며 곡의 순위 값이 5인 곡을 표시합니다. ControlTemplate에는 열의 행 내용을 GridView 보기 모드에 정의된 대로 배치하는 GridViewRowPresenter 개체가 들어 있습니다.

<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 방법 항목