2011-10-05 84 views
1

在自定義列表視圖中,每行都由圖像和文本組成。每個偶數行,圖像應該在左邊,每一個奇數行,它應該在右邊。作爲WPF的初學者,我想知道實現這個目標的最簡單方法是什麼,並重用大部分XAML編寫。WPF - ListView中的替代項目模板

奇數/偶數項模板真的只因圖像位於文本的一邊或另一邊這一事實而有所不同。

回答

2

我相信你可以在樣式中使用觸發器來實現這一點。您可以將圖像左對齊,並在觸發器中將其更改爲正確。

類似的東西來:有關如何使用AlternationIndex here

<Style.Triggers> 
    <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
      <!-- Change image position here --> 
    </Trigger> 
<Style.Triggers> 

更多信息。

編輯 - 工作樣品

<Style TargetType="ListViewItem"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ListViewItem}"> 
         <DockPanel> 
          <Image Source="/WpfApplication;component/Images/TestImage.jpg" DockPanel.Dock="Left" x:Name="rowImage"/> 
          <TextBlock Text="Testing..." Background="{TemplateBinding Background}"/> 
         </DockPanel> 
        <ControlTemplate.Triggers> 
         <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
          <Setter Property="DockPanel.Dock" TargetName="rowImage" Value="Right" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

我知道交替指數,但是我真的不知道如何使用,在一個現實世界的例子(再次,我是相當新的WPF和XAML) 。我已經看到了關於如何改變ListViewItem背景的例子,但我很難理解如何讓模板改變。 –

+0

@MarvinLabs,我不確定你在那裏有什麼,但我已經添加了我腦海中的一個工作示例。 –

+0

非常感謝,您的樣品讓我走上了正軌! –