2009-09-09 13 views
0

J'ai un radgridview qui est lié à un objet que j'ai créé, foo.WPF - Afficher l'image dans RadGridView dynamiquement et via le code

L'objet foo possède une propriété 'status' qui est remplie à partir d'une énumération.

J'ai beaucoup d'objets foo stockés dans une collection, que j'utilise pour lier à mon radgridview.

Lors de la liaison, j'obtiens des enregistrements et la grille s'affiche correctement.

Je ne souhaite pas afficher la valeur enum 'status' de mon objet foo dans la grille. Au lieu de cela, j'aimerais utiliser des images séparées qui décriront le statut plus clairement (et dans moins d'espace). Exemple, si la valeur enum 'status' de foo == Open, je vais afficher une porte ouverte et la valeur == Closed serait une porte fermée. Donc, la même colonne pourrait avoir différentes images, mais à partir de la même propriété liée par le statut de foo enum. Espérons que c'est assez clair ...

J'ai essayé de surcharger la valeur du contenu avec une image bitmap dans l'événement RowLoaded de la grille. J'ai également essayé de placer le type de données de la grille à l'image, butmapimage, et la source d'image en vain ...

Cela semble que ce devrait être beaucoup plus facile que c'est ... Si l'image venait directement de la base de données , ce ne serait pas un problème; il y a beaucoup d'exemples là-bas. Cependant, le faire dynamiquement ET à travers le code reste un mystère.

Merci d'avance pour toute assistance!

Répondre

0

Apparemment, tout ce que je avais besoin était de poster la question ...

Je suis tombé victime d'essayer trop de choses à la fois et un soultion qui aurait dû parfaitement fonctionné n'a pas parce que je cherchais un style sur un cellule en même temps.

Dans l'exemple fourni ci-dessus, dans le cas RowLoaded de la grille, on peut effectuer les opérations suivantes:

  1. Obtenez la valeur ENUM du contenu cellulaire
  2. Créer un contrôle de l'image (System.Windows.Controls. image img = new image();)
  3. Affectez la source de l'image en fonction de la valeur ENUM (open.png/closed.png)
  4. Régler le contenu de la cellule = au contrôle de l'image que vous venez de créer

Lorsque l'affichage de la grille, vous devriez voir votre image dans la cellule de la grille ...

Vous devez également vous assurer le type de données de la colonne est réglée sur: typeof (System.Windows.Controls.Image)

Questions connexes