1

这似乎是一个常见问题,但我的 Google-Fu 让我一无所获。抱歉,如果这已经被问过一千次了!

我有一个集合,比如说一个ObservableCollection<Athlete>。我想在屏幕上显示该集合,使其看起来像:

[球衣图片] | [球衣图片] | [球衣图片] | [球衣图片]

在这个人为的例子中,关键是每张图片之间的小条。减去那个栏,它只是一个ListBox集合的绑定,一个ItemsPanelTemplate是水平的StackPanel,然后是一个ItemTemplate来显示每个项目对应的球衣图片。没问题!

那么问题是,除了集合中的最后一个元素之外,如何附加可能是任何图形元素的栏?

谢谢!

4

1 回答 1

3

正如@KornMuffin 的链接中所建议的那样,您可以将栏放在 ListBox item 的左侧:

| [球衣图片] | [球衣图片] | [球衣图片] | [球衣图片]

然后使用DataTriggerwith {RelativeSource PreviousData}binding,如果先前的数据为空,则隐藏第一个栏。例如,假设我Separator用于显示栏,我可以将此样式添加到分隔符控件以隐藏第一个分隔符:

<Separator.Style>
    <Style TargetType="Separator">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                <Setter Property="Visibility" Value="Collapsed"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Separator.Style>
于 2014-02-25T03:31:25.810 回答