Как привязать Avalonia ComboBox к данным API?C#

Место общения программистов C#
Ответить
Anonymous
 Как привязать Avalonia ComboBox к данным API?

Сообщение Anonymous »

Я пытаюсь заполнить поле со списком Avalonia данными, полученными из API. API возвращает список из 87 элементов, и я могу подтвердить, что данные получены правильно при отладке. Однако во время выполнения ComboBox кажется пустым.
Вот мой XAML: Моя модель представления:

Код: Выделить всё

private ObservableCollection _costCentersList;
public ObservableCollection CostCentersList
{
get => _costCentersList;
set
{
_costCentersList = value;
OnPropertyChanged(nameof(CostCentersList));
}
}

public EquipmentFormViewModel(AppStateManager appStateManager)
{
_appStateManager = appStateManager;
GetAllCostCenters();
}
Вызов API:

Код: Выделить всё

private async Task GetAllCostCenters()
{
using (HttpClient client = new HttpClient())
{
try
{
client.Timeout = TimeSpan.FromSeconds(30);
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", _appStateManager.AccessToken);

var response = await client.GetAsync("http://localhost:5000/cmmsapi/costcenter/GetCostCenters");

if (response.StatusCode == HttpStatusCode.OK)
{
var responseBody = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject(responseBody);

if (data != null)
{
CostCentersList = new ObservableCollection(data);
}
}
}
catch (Exception ex)
{
// Handle exceptions
}
}
}
DTO:

Код: Выделить всё

public class CostCenterResponseDto
{
public long Id { get; set; }
public string Code { get; set; }
public string Title { get; set; }
public bool IsActive { get; set; }
}
Несмотря на получение данных, ComboBox остается пустым. Что может быть причиной этой проблемы? Что-то не так с моей привязкой или потоком данных?

Подробнее здесь: https://stackoverflow.com/questions/797 ... o-api-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»