كيفية القيام بما يلي: نمط صف في 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 (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