2017-10-06 95 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(); 
}