El enlace de datos a una colección con un comportamiento diferente para el último elemento
-
20-12-2019 - |
Pregunta
Esto parece que sería un problema común, pero mi Google-Fu me dejó vacía de composición.Disculpas si esto ha sido pedido una y mil veces antes!
Tengo una colección, es decir, una ObservableCollection<Athlete>
.Quiero mostrar la colección en la pantalla, por lo que se ve algo como:
[Jersey Pic] | [Jersey Pic] | [Jersey Pic] | [Jersey Pic]
La clave en este ejemplo inventado es el pequeño bar, entre cada imagen.Resta que la barra y es sólo un ListBox
vinculado a la colección, con un ItemsPanelTemplate
de una horizontal StackPanel
, y , a continuación, un ItemTemplate
para mostrar la correspondiente jersey imagen para cada elemento.No hay problemas!
La pregunta es entonces, ¿cómo anexar el bar, que podría ser cualquier elemento gráfico, después de todo, pero el último elemento en la colección?
Gracias!
Solución
Como se sugiere en el enlace de @KornMuffin, usted puede poner la barra en el lado izquierdo del cuadro de lista elemento :
| [Jersey Pic] | [Jersey Pic] | [Jersey Pic] | [Jersey Pic]
A continuación, utilice DataTrigger
con {RelativeSource PreviousData}
de unión, para ocultar la primera barra, si los datos anteriores es nulo.Por ejemplo, supongamos que estoy usando Separator
para mostrar la barra, puedo agregar este estilo para el control de separador para ocultar el primer 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>