Реализуйте 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" ... />

0 ответов

Другие вопросы по тегам