0

我创建了一个带有 listview 和 ISingleOperation 的表单来刷新数据。

然后我在 ViewModel 中创建了命令。

 public IRelayCommand LoadInvoicesCommand
    {
        get
        {
            return GetCommand(() => Execution.ViewModelExecute(new LoadInvoicesOperation(_model), 10000));
        }
    }

ISingleOperation 运行良好并返回

new Result() { ResultAction = ResultType.None };

刷新操作绑定好

RefreshCommand="{Binding LoadInvoicesCommand}"

但是刷新指示器“挂起”并没有消失,这里有什么问题?

4

1 回答 1

3

您需要将ListView名为IsRefreshing的第二个属性绑定到您的 ViewModel。这是一个布尔属性,负责告诉ListView刷新已经开始/完成。

ListView XAML 的示例

<ListView 
    VerticalOptions="FillAndExpand"
    IsPullToRefreshEnabled="true"
    RefreshCommand="{Binding LoadInvoicesCommand}"
    IsRefreshing="{Binding IsRefreshing, Mode=OneWay}"
    ItemsSource="{Binding YourItemSource}"
    ItemTemplate="{StaticResource ItemTemplate" />

您的 ViewModel 将需要一个名为的公共属性IsRefreshing,您需要将其设置false为刷新命令完成时。

于 2017-06-05T23:06:03.037 回答