2010-03-23 6 views
2

J'ai créé un ListView avec un composant GridView. Maintenant, en essayant de remplir l'une des cellules avec une icône (PNG) comme dans l'exemple de code ci-dessous (de save_icon.png):C# WPF XAML Problème avec l'icône dans GridViewColumn

<ListView.View> 
    <GridView> 
     <GridViewColumn Header="Date" Width="Auto" DisplayMemberBinding="{Binding Date}" /> 
     <GridViewColumn Header="Time" Width="Auto" DisplayMemberBinding="{Binding Time}" /> 
     <GridViewColumn Header="FriendlyName" Width="Auto" DisplayMemberBinding="{Binding FriendlyName}" /> 
     <GridViewColumn Width="Auto"> 
      <Image Source="save_icon.png" /> 
     </GridViewColumn> 
    </GridView> 
</ListView.View> 

Visual Studio me donne une erreur sur la ligne, où je mets l'icône dans la column (ERREUR: "Erreur 35: Le fichier save_icon.png ne fait pas partie du projet ou sa propriété 'Build Action' n'est pas définie sur 'Resource'.") J'ai ajouté l'icône au projet en tant que ressource et quand je commence l'application, tout fonctionne (l'icône apparaît au bon endroit). Mais la fenêtre du concepteur WPF ne peut pas être rechargée et je ne suis pas en mesure de voir les changements dans le concepteur, quand je change le code XAML. Est-ce que quelqu'un peut expliquer cette erreur ou est-ce que je fais quelque chose de mal?

Merci pour chaque indice à l'avance!

Répondre

3

J'ai trouvé une solution à mon problème. Utilisez simplement un Cell- et DataTemplate à l'intérieur d'un GridViewColumn. Le XAML-Code-Snippet fait exactement ce dont j'ai besoin et le concepteur de wpf recharge sans aucun problème:

<ListView.View> 
    <GridView> 
     <GridViewColumn Header="Date" Width="Auto" DisplayMemberBinding="{Binding Date}" /> 
     <GridViewColumn Header="Time" Width="Auto" DisplayMemberBinding="{Binding Time}" /> 
     <GridViewColumn Header="FriendlyName" Width="Auto" DisplayMemberBinding="{Binding FriendlyName}" /> 
     <GridViewColumn Width="Auto"> 
      <GridViewColumn.CellTemplate> 
       <DataTemplate> 
        <Image Source="Resources\saveicon.png"></Image> 
       </DataTemplate> 
      </GridViewColumn.CellTemplate> 
     </GridViewColumn> 
    </GridView> 
</ListView.View> 
0

Je crois que c'est parce que vous avez un trait de soulignement dans votre nom de fichier d'image. Essayez de supprimer le trait de soulignement et de reconstruire.

+0

Merci à tous pour votre réponse. Malheureusement, cela n'a pas résolu mon problème :-(J'ai enlevé toutes les icônes du projet, les ai renommées (maintenant sans caractères spéciaux) et les ai ajoutées comme de nouvelles icônes aux ressources du projet ... l'erreur se produit comme avant: "Erreur 35: Le fichier save_icon.png ne fait pas partie du projet ou sa propriété 'Build Action' n'est pas définie sur 'Resource'." Cela n'a absolument aucun sens pour moi ... L'icône fait partie du projet , c'est l'action de construction est définie sur "Resource" et il apparaît lorsque l'application est en cours d'exécution.Mais je ne peux pas utiliser le concepteur wpf, car il ne recharge pas à cause de l'erreur – Alex

+0

En plus, je vois qu'il y a des rapports de personnes qui ont recréé le projet à partir de rien et qui ont ajouté les fichiers images et ça marche. pour travailler. J'entends l'éditeur de xaml est meilleur dans VS 2010. Espérons. – billb

+0

Oui, j'ai reconstruit l'ensemble du projet (j'ai oublié de le mentionner ci-dessus). J'espère pour un meilleur éditeur XAML dans VS 2010, aussi. Celui de VS 2008 fait parfois des choses vraiment étranges. Merci quand même! – Alex