Bonjour,
J'ai quelques problèmes de design avec une ListView, et les cellules qu'elle contient. Je vous expose mes deux problèmes:
- Je dispose dans mon application d'un UserControl divisé en deux parties par un Grid. J'ai d'abord une première ligne qui contient plusieurs textblock, bouton,.... tout cela de taille fixe. Ensuite j'ai une deuxième ligne avec à l'intérieur un ListView. Et c'est cette ListView qui me pose problème. Dans mon application, dans ma Window, cet UserControl décrit plus haut est contenu lui même dans un Grid. Le problème est que ma ListView si elle n'est pas remplis, elle n'occupe pas tout l'espace libre qu'elle était censé recouvrir même étant vide. De plus je ne peux pas spécifier une hauteur car cette espace est variable selon la taille de la fenêtre. Je pensais que la ListView prendrait automatiquement tous l'espace libre. Mais je n'ai pas trouvé de moyen de le faire.
- J'ai un autre problème cette fois avec les cellules de ma ListView. Mon application est un lecteur audio, ma ListView contient la liste des chansons. Je voudrais donc pouvoir afficher un design différent sur la ligne dont la chanson est en cours de lecture par exemple, ou encore pour indiquer que le fichier musical de la chanson à la ligne x et y est introuvable ou bien simplement parce que la ligne à la propriété IsSelected à True. Quoi qu'il en soit les changements sont affectés à la fois par les différentes propriétés du control mais aussi par celles de l'Item que le control contient.
Ces changements se caractérise surtout par un changement de couleur de la police. J'ai réussi à faire ce que je voulais en créant un style puis à l'affecter à la propriété ItemContainerStyle de la ListView. Par exemple j'ai indiqué que la couleur de la police est grise clair. Mon problème est que maintenant je voudrais par exemple que la première colonne ai elle plutôt cette police en blanc. Ne sachant pas comment faire, je me suis dit que je vais redefinir le CellTemplate juste pour la première colonne. Alors j'ai créer un DataTemplate avec à l'intérieur un simple TextBlock pour afficher le contenu, et ce TextBlock à la propriété Foreground à White. Le problème est que maintenant quoi qu'il advienne la police reste blanc, et ne change plus quel que soit les changements indiqué par le style contenu dans ItemContainerStyle. Je me dit donc que je me suis peut être très mal pris pour arriver à mes fins. Donc comment pourrais-je faire pour arriver à un résultat qui soit celui que j'attend ou du moins qui s'en rapproche très près?
J'ai mis en pièce jointe mon projet si cela peut vous aider à m'aider. Le fichier contenant le UserControl se trouve dans le dossier views/PlaylistDetailView.xaml.
Je vous remercie d'avance pour votre aide.
PS: Ceux qui éventuellement tenterons de tester le projet pour m'aider, reconnaitrons peut être l'interface d'une application déjà existante.... Je suis désolé pour ce honteux plagiat, mais j'ai à dire pour ma défense que je suis un très mauvais designer toujours en manque d'idée dans ce domaine. Et cela me fait un bonne exercice à essayer de recréer une interface compliquée.
Partager