数据绑定到最后一个元素具有不同行为的集合
-
20-12-2019 - |
题
这似乎是一个常见问题,但我的 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>
不隶属于 StackOverflow