WPF - ListView中的备用项模板

时间:2011-10-05 11:15:17

标签: wpf listview itemtemplate

在自定义列表视图中,每行由图像和文本组成。每个偶数行,图像应该在左边和每个奇数行,它应该在右边。

作为WPF的初学者,我想知道实现这一目标的最简单方法是什么,并重用大部分编写的XAML。

奇数/偶数项模板实际上只是因图像位于文本的一侧或另一侧而不同。

1 个答案:

答案 0 :(得分:2)

我相信你可以在风格中使用触发器来实现这一目标。您可以将图像左对齐并在触发器中将图像更改为右图。

类似于:

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

有关如何使用AlternationIndex here的更多信息。

修改 - 工作样本

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