我创建了一个带有 listview 和 ISingleOperation 的表单来刷新数据。
然后我在 ViewModel 中创建了命令。
public IRelayCommand LoadInvoicesCommand
{
get
{
return GetCommand(() => Execution.ViewModelExecute(new LoadInvoicesOperation(_model), 10000));
}
}
ISingleOperation 运行良好并返回
new Result() { ResultAction = ResultType.None };
刷新操作绑定(bind)好
RefreshCommand="{Binding LoadInvoicesCommand}"
但是刷新指示器“挂起”并没有消失,这里有什么问题?
最佳答案
您需要从 ListView
绑定(bind)第二个属性命名为 IsRefreshing到您的 ViewModel。这是一个 bool 属性,负责告诉 ListView
刷新已经开始/完成。
ListView XAML 的示例
<ListView
VerticalOptions="FillAndExpand"
IsPullToRefreshEnabled="true"
RefreshCommand="{Binding LoadInvoicesCommand}"
IsRefreshing="{Binding IsRefreshing, Mode=OneWay}"
ItemsSource="{Binding YourItemSource}"
ItemTemplate="{StaticResource ItemTemplate" />
您的 ViewModel 需要一个名为
IsRefreshing
的公共(public)属性。您需要将其设置为 false
当您完成刷新命令时。
关于xamarin - ListView 的刷新命令不适用于绑定(bind)的 IRelayCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44371616/