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

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

泽西图片] | [泽西图片] | [泽西图片] | [泽西图片

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

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

谢谢你!

有帮助吗?

解决方案

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

| [泽西图片] | [泽西图片] | [泽西图片] | [泽西图片

然后使用 DataTrigger{RelativeSource PreviousData} 绑定,如果先前的数据为空,则隐藏第一个栏。例如,假设我正在使用 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top