根据this documentation,如果您希望网格在更新列表时自动更新,则必须将集合声明为
ObservableCollection
。您可能还必须初始化一个空集合,以便网格可以订阅其事件:
private ObservableCollection<dynamic> GridFilter = new ObservableCollection<dynamic>();
但这意味着你不能用集合的新实例替换
GridFilter
,就像你在这里做的那样:
GridFilter = await this.GetData();
您必须将每个项目添加到现有集合中。您可以在
ButtonClick()
活动中执行此操作,或者直接将项目添加到 GridFilter
中的 GetData()
.
ObservableCollection
不支持 AddRange()
不幸的是,所以你必须一次添加一个。或者,你可以使用这个ObservableRangeCollection
某人写的类来支持AddRange
.
另一种方法是在更改集合后在网格上调用 Rebind 方法,它可能看起来像这样(未经测试,因此可能需要一些调整):
<TelerikGrid Class="grid"
Data=@GridFilter
Sortable="true"
FilterMode="GridFilterMode.FilterMenu"
Resizable="true"
SelectionMode="GridSelectionMode.Multiple"
Pageable="true"
PageSize=20
Navigable="true"
@ref="@GridRef">
private async Task ButtonClick()
{
GridFilter = await this.GetData();
GridRef.Rebind();
}