Динамические свойства у ссылочного типа c# BindingList
Объявляю свойства
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 шт):
Автор решения: rotabor
→ Ссылка
Не углубляясь далеко, можно сказать, что изменение данных работает в одном направлении: Элемент управления для отображения и изменения данных (например, DataGridView) --> BindingList (или BindingSource) --> источник данных. Можно, конечно, плыть против течения, сильно гребя руками, а можно работать с BindingList.