【问题标题】:Xamarin forms, Pull to refresh listView in UWPXamarin 表单,拉取刷新 UWP 中的 listView
【发布时间】:2018-03-17 04:30:28
【问题描述】:

在 Windows 桌面上运行时如何使用 Xamarin 表单刷新列表? 看来我们不能拉刷新。 谢了。

弗朗索瓦

【问题讨论】:

    标签: win-universal-app xamarin.forms


    【解决方案1】:

    在 Xamarin Forms 上的 ListView 中拉动刷新需要您实现这 3 件事。

    IsPullToRefreshEnabled="True" RefreshCommand="{Binding RefreshListCommand}" IsRefreshing="{Binding IsBusy, Mode=OneWay}"
    

    如果你有这三样东西,PullToRefresh 就可以了。

    但是,我一直在查看 UWP 的代码,但在任何地方都找不到 Xamarin Forms 如何为 WinRT 或 UWP 实现 PullToRefresh。查看文档,不支持 WinRT,因此我认为此时也不支持 UWP。

    https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/interactivity/#Pull_to_Refresh

    目前只有 WP8SL、iOS 和 Android 支持 PullToRefresh。

    【讨论】:

    • 我也是这么想的?
    • @adam-pedley 嗨,我正在尝试在 xamarin UWP 中实现 PullToRefresh,但无法正常工作。这仍然不支持吗?有没有替代方案
    【解决方案2】:

    试试看。为我工作。

    <ListView ItemsSource="{Binding MyList}"
              IsPullToRefreshEnabled="True"
              RefreshCommand="{Binding RefreshCommand}"
              IsRefreshing="{Binding IsRefreshing}" />
    

    设置 IsPullToRefreshEnabled=”True” 以启用该功能,然后在您的 ViewModel 中创建这两个属性。

    private bool _isRefreshing = false;
    public bool IsRefreshing { 
    get { return _isRefreshing; }
    set {
        _isRefreshing = value;
        OnPropertyChanged(nameof(IsRefreshing));
        }
    }
    
    public ICommand RefreshCommand
    {
        get {
            return new Command(async () =>
            {
                IsRefreshing = true;
    
                await RefreshData();
    
                IsRefreshing = false;
            });
        }
    }
    

    现在当你从列表视图顶部下拉时,它会显示一个刷新动画,而IsRefreshing=”true”.

    例子

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2016-07-23
      • 2017-12-17
      • 2020-09-23
      • 1970-01-01
      相关资源
      最近更新 更多