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();
}