Моя модель в основном состоит из 2 классов ниже (на самом деле я получил другой класс, который наследуется от абстрактного класса, но я думаю, что это не имеет значения):
public abstract class FeedForEvents: BaseObservableObject
{
public abstract void ReadFeed();
public List<Event> Events { get; set; }
public void AddEvent(Event aEvent)
{
Events.Add(aEvent);
OnPropertyChanged("Events");
}
}
public class Event : BaseObservableObject
{
public string MyProp
{
get
{
return _myProp;
}
set
{
_myprop= value;
OnPropertyChanged();
}
}
}
Моя форма содержит:
private BindingList<FeedForEvents> ListFeedsForEvents = new BindingList<FeedForEvents>();
private BindingList<Event> ListEvents
=> new BindingList<Event>(ListFeedsForEvents.SelectMany(m =>m.Events).ToList());
private BindingSource pagesBindingSource = new BindingSource();
public void RefreshGrid()
{
pagesBindingSource.DataSource = ListEvents;
this.grdEvents.DataSource = pagesBindingSource;
this.grdEvents.AutoGenerateColumns = true;
}
Но даже если мои 2 объекта правильно подняли уведомление PropertyChanged, интерфейс никогда не покажет обновленные объекты (если я не вручную обновлю их sh, нажав кнопку, чтобы вручную вызвать RefreshGrid()
). Почему?