Уведомление о привязке данных Winforms - PullRequest
0 голосов
/ 22 апреля 2020

Моя модель в основном состоит из 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()). Почему?

...