J'ai créé une ObservableCollection dans le code derrière un contrôle utilisateur. Il est créé lorsque les charges de fenêtre:WPF ObservableCollection dans xaml
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Entities db = new Entities();
ObservableCollection<Image> _imageCollection =
new ObservableCollection<Image>();
IEnumerable<library> libraryQuery =
from c in db.ElectricalLibraries
select c;
foreach (ElectricalLibrary c in libraryQuery)
{
Image finalImage = new Image();
finalImage.Width = 80;
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(c.url);
logo.EndInit();
finalImage.Source = logo;
_imageCollection.Add(finalImage);
}
}
je dois obtenir le ObservableCollection d'images qui sont créées en fonction de l'URL enregistrée dans une base de données. Mais je besoin d'un ListView ou autre ItemsControl de se lier à elle dans le fichier XAML comme ceci:
Mais je ne peux pas comprendre comment passer le ObservableCollection au ItemsSource de ce contrôle. J'ai essayé de créer une classe et ensuite créer une instance d'une classe dans le fichier xaml mais cela n'a pas fonctionné. Dois-je créer une ressource statique en quelque sorte>
Toute aide sera grandement appréciée.
Techniquement correct, sauf si vous souhaitez ajouter plus de détails, et fixer un petit point - * ObservableCollection * implémente déjà * INotifyCollectionChanged * et * INotifyPropertyChanged * il n'est donc pas nécessaire de les réimplémenter/invoquer sur la propriété publique mentionnée. – slugster
Merci de votre aide. Pourriez-vous fournir de petits extraits de code à titre d'exemple? – Enzomatric
@slugster - désolé de ne pas être clair dans ma réponse. La raison pour laquelle j'ai mentionné INotifyPropertyChanged était purement pour mettre à jour la liste si la propre propriété publique de l'auteur était réinitialisée. Je n'aurais probablement pas dû ajouter cette information excédentaire ... @Cloverness - ajouter un exemple ... –