Vinculação de dados a uma coleção com comportamento diferente para o último elemento
-
20-12-2019 - |
Pergunta
Parece que seria um problema comum, mas meu Google-Fu me deixou sem nada.Desculpas se isso já foi perguntado milhares de vezes antes!
Eu tenho uma coleção, digamos um ObservableCollection<Athlete>
.Quero exibir essa coleção na tela para que se pareça com:
Jersey Pic] | [Jersey Pic] | [Jersey Pic] | [Foto de Jersey
A chave neste exemplo inventado é a pequena barra entre cada imagem.Subtraia essa barra e é apenas um ListBox
vinculada à coleção, com um ItemsPanelTemplate
de uma horizontal StackPanel
, e então um ItemTemplate
para mostrar a imagem da camisa correspondente para cada item.Sem problemas!
A questão é então: como anexar a barra, que poderia ser qualquer elemento gráfico, afinal menos o último elemento da coleção?
Obrigado!
Solução
Conforme sugerido no link do @KornMuffin, você pode colocar a barra no lado esquerdo do item ListBox:
| [Jersey Pic] | [Jersey Pic] | [Jersey Pic] | [Foto de Jersey
Então use DataTrigger
com {RelativeSource PreviousData}
ligação, para ocultar a primeira barra se os dados anteriores forem nulos.Por exemplo, suponha que estou usando Separator
para exibir a barra, posso adicionar este estilo ao controle separador para ocultar o primeiro separador:
<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>