WPF: Comment lier à un seul élément d'une collection, n'utilisant pas ItemsControl puisque je ne veux pas tous les afficher

J'ai cette exigence, que j'ai une collection d'objets (ObservableCollection), mais je ne veux afficher le premier élément. L'exigence vient du fait que dans la plupart des cas, la collection ne contient qu'un seul élément. Et en raison de la limite de l'espace, même si il y a plusieurs éléments de la collection, nous aimerions afficher le nombre d'articles, les détails de la première (même présentation, comme état de la situation) et une ... symbole pour indiquer à l'utilisateur qu'il n'y a plus d'éléments. Et lorsque la souris est au-dessus de l'élément de l'INTERFACE utilisateur d'un popup finira afficher tous les éléments.

La première solution que je pense (s'il vous plaît suggérer d'autres personnes si elles sont de mieux en mieux) est à lier à cette collection (mais pas à l'aide d'un ItemsControl) et de définir un DataTemplateSelector classe dérivée (qui retourne l' DataTemplate pour afficher le seul élément, ou la DateTemplate qui a le ... et le pop-up pour plus de détails, sur la base du nombre d'articles de la collection) et l'utiliser comme ContentTemplateSelector.

Mais maintenant, ma question: comment à la fois de mon DataTemplate ressemblerait en XAML, de sorte qu'ils peuvent afficher uniquement le premier élément de la collection? Évidemment, je ne peux pas avoir un ItemsControl.

Mise à JOUR:

Maintenant, j'ai réussi à le faire fonctionner et acceptez cette question peut être fermé (je ne peux pas le supprimer plus puisqu'il y a déjà quelques réponses).

En fait je savais comment faire pour lier à un certain point dans la collection, mais ce n'était pas où je suis confus. J'ai senti que je devrais utiliser ContentControl comme une réponse suggère. Mais je pensais que depuis que j'ai besoin de se lier à l'ensemble de la collection (de ne pas l'unique élément indexé), et l'utilisation d'un DataTemplateSelector pour choisir le bon DataTemplate basé sur le nombre d'éléments dans la collection. Le code devrait ressembler à ceci:

<ContentControl Content="{Binding MyCollection}"
          ContentTemplateSelector="{StaticResource MyTemplateSelector}" />

Et dans MyTemplateSelector je n'étais pas sûr de la façon de l'utiliser car il n'y a aucune référence à ma collection, car elle est définie comme ressource et il n'a pas l'information de MyCollection. Cependant, il s'est avéré pour être très simple, le DataTemplate peut se référer à un élément indexé sans connaître le nom ou toute autre référence. Tout simplement comme ceci:

<DataTemplate>
   <TextBlock Text="{Binding [0].PropertyName}" />
<DataTemplate />

source d'informationauteur tete