Xamarin dxGrid не обновляет контент

Я использую dxGrid в приложении xamarin для отображения содержимого. Пока это работает хорошо, но я не могу заставить сетку обновлять значения.

Я использую эту сетку:

<dxGrid:GridControl 
    x:Name="grid" 
    ItemsSource="{Binding articles, Mode=TwoWay}"
    SelectedDataObject="{Binding selectedRowObject}"
    AutoFilterPanelVisibility="true"
    IsReadOnly="true"
    SortMode="Multiple">
    <dxGrid:GridControl.Columns>
        <dxGrid:TextColumn 
            FieldName="description" 
            Caption = "Description" 
            AutoFilterCondition="Contains"/>
        <dxGrid:TextColumn 
            FieldName="id" 
            Caption = "ID" 
            AutoFilterCondition="Contains"/>
        <dxGrid:TextColumn 
            FieldName="formattedPrice" 
            Caption = "Price" 
            AutoFilterCondition="Contains"/>
    </dxGrid:GridControl.Columns>
</dxGrid:GridControl>

В моей ViewModel я использую это для привязки данных:

public List<Article> articles
{
    get
    {
        return dataItem.articles;
    }
}

Объект dataItem содержит список статей помимо некоторой другой общей информации. Когда я открываю страницу, содержимое отображается правильно, но когда я хотел бы иметь возможность сделать это вручную. Например, это не работает, когда я возвращаюсь в Оаге через Navigation.PopAsync();,

Чтобы перезагрузить список, я использую PropertyChanged(this, new PropertyChangedEventArgs(nameof(articles)));Подвеска этого работает для всех других элементов, кроме сетки. Элементы объекта article правильно установлены, хотя, когда я проверяю их в отладчике, они просто не обновляются.

1 ответ

Решение

Я нашел быстрое решение, которое работает для меня (хотя это выглядит немного нечисто):

В коде позади представления:

protected override void OnAppearing()
{
    grid.RefreshData();
    base.OnAppearing();
}
Другие вопросы по тегам