Динамические свойства у ссылочного типа c# BindingList

Рейтинг: 0Ответов: 1Опубликовано: 07.06.2023

Объявляю свойства

    public static bool isOnline = false;
    public static BindingList<Request> OnlineRequests { get; set; } = new BindingList<Request>();

    public static BindingList<Request> CachedRequests { get; set; } = new BindingList<Request>();

    public static BindingList<Request> Requests { get
        {
            if (isOnline)
            {
                return OnlineRequests;
            }
            else
            {
                return CachedRequests;
            }
        } set
        {
            if (isOnline) 
            {
                OnlineRequests = value;
            }
            else
            {
                CachedRequests = value;
            }
        } }

Потом в Main

        gridRequest.DataSource = Config.Requests;
        Requests.ListChanged += requests_ListChanged;

DataSource мгновенно не изменяется при изменении переменной isOnline (требуется повторная привязка). Event ListChanged не срабатывает никогда

Вопрос. Возможно ли как-то синхронизировать всю логику, обращаясь исключительно к Requests

Ответы

▲ -1

Не углубляясь далеко, можно сказать, что изменение данных работает в одном направлении: Элемент управления для отображения и изменения данных (например, DataGridView) --> BindingList (или BindingSource) --> источник данных. Можно, конечно, плыть против течения, сильно гребя руками, а можно работать с BindingList.