2017-10-06 48 views
0

我在xamarin应用程序中使用dxGrid来显示内容。这到目前为止效果很好,但我无法让网格更新值。Xamarin dxGrid没有更新内容

我使用该网格:

<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> 

在我的视图模型,我用这个数据绑定:

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

的DataItem的对象包含除此之外其它的一些常规信息的文章列表。当我打开页面时,内容显示正确,但是我希望能够手动执行此操作。例如,当我通过Navigation.PopAsync();返回时,这不起作用。

要重新加载列表,我使用PropertyChanged(this, new PropertyChangedEventArgs(nameof(articles)));,这个挂件适用​​于除网格以外的所有其他元素。虽然当我在调试器中检查它们时,文章对象的项目已正确设置,但它们并未更新。

回答

0

我发现了一个速战速决为我的作品(altough它看起来有点不干净):

在视图的后台代码:

protected override void OnAppearing() 
{ 
    grid.RefreshData(); 
    base.OnAppearing(); 
}