Aracılığıyla paylaş


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

Bu örnekte, mod kullanan bir ListView denetimdeki satıra nasıl stil uygulanacak gösterilmektedir GridViewView .

Örnek

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

Aşağıdaki örneklerin ayıklandığı tam örnek, XML veritabanında depolanan bir ş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ı bilgileri satırının nasıl görüntüleneceğini belirtir.

Aşağıdaki örnekte, şarkı koleksiyonundaki ListViewItem şarkıları temsil eden nesneler için nasıl tanımlanacağı ItemContainerStyle gösterilmektedir. Bir ItemContainerStyle şarkı bilgileri satırının nasıl görüntüleneceğini belirten nesnelere başvurur 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>

Aşağıdaki örnekte, satıra metin dizesi "Strongly Recommended" ekleyen bir ControlTemplate gösterilmektedir. Bu şablona ItemContainerStyle içinde başvurulur ve şarkının derecelendirmesinin değeri 5 (beş) olduğunda görüntülenir. , ControlTemplate görünüm modu tarafından GridView tanımlanan sütunlarda satırın içeriğini yerleştiren bir GridViewRowPresenter nesne 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 tanımlar 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>

Ayrıca bkz.