Xamarin Forms ListView внутри TabbedPage не обновляется с помощью ObservableCollection - PullRequest
2 голосов
/ 28 февраля 2020

Файл ListView моего XAML заполняется ViewModel, который имеет ObservableCollection от службы, но ListView не обновляет информацию. Я уже проверяю, что служба возвращает правильную информацию.

XML:

<ListView x:Name="DashboardDetailsList" 
            SelectionMode="None" 
            HasUnevenRows="True" 
            ItemsSource="{Binding DetailsList}"
            BackgroundColor="Transparent" 
            VerticalOptions="FillAndExpand" 
            SeparatorVisibility="None">
   <ListView.ItemTemplate>
       <DataTemplate>
           <ViewCell>
              ...
              ...
           </ViewCell>
       </DataTemplate>
   </ListView.ItemTemplate>
</ListView>

Код:

public ObservableCollection<Dashboard> DetailsList { get; set; } = new ObservableCollection<Dashboard>();
//API Call
details = await _clientAPI.getDashboardDetails(id);
if (details != null)
{
    DetailsList.Clear();
    foreach (var item in details)
    {
        DetailsList.Add(item);
    }
}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Извините, мужик .. Вы используете MVVM?

Вы должны сообщить, что переменная была изменена.

Как это

private ObservableCollection <Dashboard> _detailsList;
public ObservableCollection <Dashboard> DetailsList
{
    get => _detailsList;
    private set => SetProperty (ref _detailsList, value);
}

//API Call
details = await _clientAPI.getDashboardDetails(id);
if (details != null)
{
    DetailsList = details;
}
0 голосов
/ 28 февраля 2020

Попробуй этого человека

public ObservableCollection<Dashboard> DetailsList { get; set; } = new ObservableCollection<Dashboard>();
//API Call
details = await _clientAPI.getDashboardDetails(id);
if (details != null)
{
    DetailsList = details;
}
...