WPF - listbox binden an eine ObservableCollection von Bildern

Dieser sollte extrem einfach, aber ich jut, kann es nicht zu funktionieren...

CustomItem ist eine Klasse, die hat eine Eigenschaft namens " ThumbnailImage
Ich bin versucht zu binden eine ObservableCollection, um ein Listenfeld zur Anzeige von Bildern. Das ist mein code:

public ObservableCollection<CustomItem> AvailableItems { get; set; }

 <ListBox Width="103" Height="480" ItemsSource="{Binding AvailableItems}">
    <ListBox.ItemTemplate>
       <DataTemplate>
          <Border BorderBrush="Black" BorderThickness="1">
             <ContentControl Content="{Binding Path=ThumbnailImage}" 
                                             Width="100" Height="100" />
          </Border>
       </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Dem CustomItem sieht wie folgt aus

    public class CustomItem
        public Image ThumbnailImage { get; set; }
    }

Nichts ist, zeigt sich in der ListBox, wenn ich es laufen lasse. Irgendeine Idee was falsch läuft? Danke!

-- Edit 1 -- ich denke, was ich sagen kann, von Debuggen ist, dass Schrank.Elemente.Count == 0 wenn AvailableItems.Count == 5. Ich habe versucht, das hinzufügen ItemsSource="{Binding AvailableItems, UpdateSourceTrigger=PropertyChanged}" aber das hat nicht geholfen 🙁

-- Edit 2 --

War ich wie folgt in meiner XAML -

DataContext="{Binding RelativeSource={RelativeSource Self}}" 

statt, als ich die folgenden in der codebehind, hat alles geklappt:

DataContext = this;
  • Ich hatte ein ähnliches problem wie du. Obwohl meine Bindung gearbeitet, das ContentControl zeigte eine Zeichenfolge, die den Bild-Typ anstatt zu zeigen, das Bild. Ich fand heraus, dass das ersetzen von <ContentControl Content="{Binding ThumbnailImage}"/> durch <Image Source="{Binding ThumbnailImage}"/> hat den trick. Wenn jemand stolpert auf diese, das könnte Ihnen helfen.
InformationsquelleAutor Greg R | 2011-03-10
Schreibe einen Kommentar