0

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

在我的 ViewModel 中,我将其用于数据绑定:

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

dataItem 对象除了一些其他一般信息外,还包含文章列表。当我打开页面时,内容会正确显示,但是当我希望能够手动执行此操作时。例如,当我通过Navigation.PopAsync();.

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

4

1 回答 1

0

我找到了一个对我有用的快速修复(虽然它看起来有点不干净):

在视图的代码隐藏中:

protected override void OnAppearing()
{
    grid.RefreshData();
    base.OnAppearing();
}
于 2017-10-09T05:31:25.993 回答