Question

Cela semble être un problème courant, mais mon Google-Fu m'a laissé sans voix.Toutes mes excuses si cela a déjà été demandé mille fois !

J'ai une collection, disons un ObservableCollection<Athlete>.Je souhaite afficher cette collection à l'écran afin qu'elle ressemble à :

Pic de maillot] | [Pic de maillot] | [Pic de maillot] | [Pic en jersey

La clé dans cet exemple artificiel est la petite barre, entre chaque image.Soustrayez cette barre et ce n'est qu'un ListBox lié à la collection, avec un ItemsPanelTemplate d'une horizontale StackPanel, puis un ItemTemplate pour afficher l'image du maillot correspondant à chaque article.Pas de problème!

La question est alors de savoir comment ajouter la barre, qui pourrait être n'importe quel élément graphique, après tout sauf le dernier élément de la collection ?

Merci!

Était-ce utile?

La solution

Comme suggéré dans le lien de @KornMuffin, vous pouvez placer la barre sur le côté gauche de l'élément ListBox :

| [Pic de maillot] | [Pic de maillot] | [Pic de maillot] | [Pic en jersey

Utilisez ensuite DataTrigger avec {RelativeSource PreviousData} liaison, pour masquer la première barre si les données précédentes sont nulles.Par exemple, supposons que j'utilise Separator pour afficher la barre, je peux ajouter ce style au contrôle séparateur pour masquer le premier séparateur :

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top