Nasıl yapılır: GridView Uygulayan ListView İçinde bir Satıra Stil Ekleme

Bu örnekte, mod kullanan bir denetimde bir ListView satıra nasıl stil uygulamanın nasıl olduğu GridViewView gösterir.

Örnek

Denetimde bir ayar kullanarak ListView denetimde bir ItemContainerStyle satıra stil ListView ebilirsiniz. Nesne olarak temsil edilen öğelerinin stilini ListViewItem ayarlayın. , ItemContainerStyle satır ControlTemplate içeriğini görüntülemek için kullanılan nesnelere başvurur.

Aşağıdaki örneklerin ayıklandığı tam örnek, bir XML veritabanında depolanan şarkı bilgileri koleksiyonunu görüntüler. Veritabanındaki her şarkının bir derecelendirme alanı vardır ve bu alanın değeri, bir şarkı bilgisi satırı görüntülemeyi belirtir.

Aşağıdaki örnekte, şarkı ItemContainerStyle koleksiyonunda şarkı ListViewItem temsil eden nesneler için nasıl tanımladığınız gösterir. , ItemContainerStyle bir şarkı bilgisi satırı ControlTemplate görüntülemeyi belirten nesnelere başvurur.

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

Aşağıdaki örnekte, ControlTemplate satıra metin dizesini "Strongly Recommended" ekleyen bir gösterir. Bu şablona içinde başvuruldu ve şarkının ItemContainerStyle derecelendirmesi 5 (beş) değerine sahip olduğunda görüntülenir. ControlTemplate, görünüm modu tarafından GridViewRowPresenter tanımlandığı şekilde satır içeriğini sütunlara koyan bir GridView nesnesi içerir.

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

Aşağıdaki örnek GridView tanımlar.

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

Ayrıca bkz.