Domanda

Sembra che sarebbe un problema comune, ma il mio Google-Fu mi ha lasciato vuoto.Ci scusiamo se questo è stato chiesto mille volte prima!

Ho una collezione, dì un ObservableCollection<Athlete>.Voglio mostrare quella raccolta sullo schermo in modo che sia simile a qualcosa come:

[Jersey Pic] |[Jersey Pic] |[Jersey Pic] |[Jersey Pic]

La chiave in questo esempio escogitato è la piccola barra, tra ogni immagine.Sottrarre quella barra ed è solo un ListBox legato alla collezione, con un ItemsPanelTemplate di un StackPanel orizzontale, e quindi un ItemTemplate per mostrare l'immagine di Jersey corrispondente per ogni elemento.Nessun problema!

La domanda è quindi, come aggiungere la barra, che potrebbe essere qualsiasi elemento grafico, dopo tutto tranne l'ultimo elemento nella collezione?

Grazie!

È stato utile?

Soluzione

Come suggerito nel link da @kornuffin, è possibile inserire la barra nel lato sinistro della scheda Listino:

|[Jersey Pic] |[Jersey Pic] |[Jersey Pic] |[Jersey Pic]

Quindi utilizzare DataTrigger con rilegatura {RelativeSource PreviousData}, per nascondere la prima barra se i dati precedenti sono null.Ad esempio, supponiamo che sto usando Separator per visualizzare la barra, posso aggiungere questo stile al controllo del separatore per nascondere il primo separatore:

<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>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top