Реализуйте OnCollectionChanged, чтобы ListBox автоматически обновлял WPF
У меня есть объект-обертка, экземпляры которого я заполняю коллекцией:
public class Multimedia : INotifyPropertyChanged
{
//... constructor
//... getters and setters for the properties
public void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
ObservableCollection<Multimedia> objSender = sender as ObservableCollection<Multimedia>;
NotifyCollectionChangedAction action = e.Action;
}
}
Коллекция:
public class MultiMediaList : ObservableCollection<Multimedia>
{
//... constructor with creating several default objects of Multimedia
public void addMedia(string title, string artist, string genre, MediaType type)
{
this.Add(new Multimedia(title, artist, genre, type));
}
}
Итак, у меня есть ListBox, который связан с коллекцией. Когда я запускаю приложение, отображаются значения по умолчанию. Но когда я добавляю новую запись в коллекцию - ListBox не обновляется новым элементом.
Я думаю, что я не правильно реализовал OnCollectionChanged
метод, но я не могу понять идею, как это сделать, из примеров, которые я видел в Интернете, потому что каждый случай настолько отличается.
РЕДАКТИРОВАТЬ: привязка кода коллекции и ListBox:
public partial class MainWindow : Window
{
MultiMediaList mediaList;
public MainWindow()
{
InitializeComponent();
mediaList = new MultiMediaList();
LB_media.ItemsSource = mediaList;
}
//...
}
XAML:
<ListBox Name="LB_media" DisplayMemberPath="Title" ... />