Question

J'ai un listview qui a une collection d'observation comme ses éléments Source, et il a plusieurs colonnes. L'une d'entre elles est une colonne d'état qui, selon l'état actuel de l'élément, affiche un message différent. Actuellement, cela est implémenté en tant que chaîne de base, et bien qu'elle fonctionne, elle est loin d'être jolie ou conviviale. Je veux pouvoir varier le type de sortie pour s'adapter plus correctement à l'état de l'élément.

J'ai fait des recherches et je sais que je dois utiliser un CellTemplate pour affecter l'affichage, mais tous les différents types de modèles me submergent simplement au point où je ne peux pas comprendre où aller ensuite.

Mon code (à l'exclusion de nombreux autres peluches de ListView) est le suivant:

<ListView Name="itemsListView" ItemsSource="{Binding Source={StaticResource listingDataView}}" IsSynchronizedWithCurrentItem="True">
    ...
    <ListView.View>
         <GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Item Information">
             ...
             <GridViewColumn DisplayMemberBinding="{Binding Path=StatusMessage}" Width="283" Header="Status" HeaderContainerStyle="{StaticResource GVHeaderLeftAlignedStyle}" />
         </GridView>
    </ListView.View>
</ListView>

Oui, les éléments ont codé le «message d'état» codé en dur qui sont mis à jour aux côtés d'autres propriétés qui sont réellement pertinentes pour le code, provoquant une duplication laide ailleurs dans mon code. (Et oui, je sais que c'est loin d'être jolie, mais je veux aussi améliorer cela.) Cette propriété serait appelée ItemState Comme je ne suis pas si créatif.

Donc, ma question est: comment puis-je varier cette colonne pour avoir l'écran le plus approprié pour l'état donné? Des descriptions textuelles feront l'affaire pour de nombreux États, mais certaines sont assez longues et peuvent profiter d'un texte avec une barre de progression en plus de cela, et peut-être une sorte de temps. Un autre État profiterait d'un hyperlien cliquable. En d'autres termes, je pense que j'ai besoin d'au moins 3 cellules différentes.

Je me rends compte que c'est une question plutôt ouverte qui souffre en grande partie des erreurs de conception de quelqu'un (= moi) qui a plutôt peu d'expérience avec WPF, mais c'est exactement pourquoi j'espère que quelqu'un expérimenté pourra me placer droit avec un code de base Avant de faire un gâchis encore pire que moi. :)

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top