2010-01-17 9 views
5

Ich erstelle eine WPF-App mit einem Listenfeld, das ich an Projektnamen binde. Als dekoratives Element möchte ich ein kleines Symbol neben jedem Element in der Liste platzieren, ähnlich wie Outlook in der Liste der persönlichen Ordner. Für den Anfang werde ich das gleiche Bild für alle Elemente in der Liste verwenden. HierWPF: Hinzufügen eines Bilds zu einer ListBox ItemTemplate

ist das Markup, das ich habe, so weit (ich es zu einem Ressourcenverzeichnis bewegen würde, nachdem es funktioniert):

<ListBox.Resources> 
    <ImageBrush x:Key="ProjectIcon" ImageSource="Images/project.png" /> 
</ListBox.Resources> 
<ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="{StaticResource ProjectIcon}"/> 
      <TextBlock Text="{Binding Path=Name}" /> 
     </StackPanel> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

ich einen Fehler in der Bildressource habe, aber ich bin mir nicht sicher, wie ich das beheben soll. Irgendwelche Vorschläge? Vielen Dank.

Antwort

11

Die Source Eigenschaft einer Image ist vom Typ ImageSource nicht ImageBrush. Folgendes sollte funktionieren:

<ListBox.Resources> 
    <BitmapImage x:Key="ProjectIcon" UriSource="Images/project.png" /> 
</ListBox.Resources> 
<ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="{StaticResource ProjectIcon}"/> 
      <TextBlock Text="{Binding Path=Name}" /> 
     </StackPanel> 
    </DataTemplate> 
</ListBox.ItemTemplate> 
+0

Perfekt gearbeitet - nochmals vielen Dank! –

Verwandte Themen