Я создал ObservableCollection в коде, находящемся под контролем пользователя. Она создается, когда окно нагрузки:WPF ObservableCollection в 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);
}
}
Мне нужно, чтобы получить ObservableCollection изображений, которые создаются на основе URL, сохраненной в базе данных. Но мне нужно ListView или другой ItemsControl связываться с ним в XAML файл следующим образом:
Но я не могу понять, как передать ObservableCollection к ItemsSource этого контроля. Я попытался создать класс, а затем создать экземпляр класса в файле xaml, но он не сработал. Должен ли я создать статический ресурс как-то>
Любая помощь будет принята с благодарностью.
Технически правильно, за исключением того, что вы можете добавить более подробную информацию и исправить одну маленькую точку - * ObservableCollection * уже реализует * INotifyCollectionChanged * и * INotifyPropertyChanged *, поэтому нет необходимости переопределять/вызывать их в общедоступном объявлении. – slugster
Благодарим вас за помощь. Не могли бы вы предоставить какие-нибудь небольшие снайперы кода в качестве примера? – Enzomatric
@slugster - извините, что неясно в моем ответе. Причина, по которой я упомянул INotifyPropertyChanged, состояла в том, чтобы просто обновить список, если собственная публичная собственность автора была повторно инициализирована. Я, вероятно, не должен был добавлять эту излишнюю информацию ... @Cloverness - пример добавления ... –