【发布时间】:2022-06-17 23:41:44
【问题描述】:
谁能告诉我我做错了什么? RefreshView 昨天才工作,今天我无法让它在任何页面上工作。我创建了一个只有 RefreshView 的全新页面,当我尝试下拉时它并没有让步。不下拉,不刷新,什么都没有。它只是在昨晚工作,今天在没有更改代码后它不起作用。我已经在模拟器和我的实际 iPad 上尝试过。在任何人建议之前,我的任何 NuGet 包都没有更新,我在 Google 上找不到任何关于此问题的参考。
XF:v5.0.0.2244
查看:
<?xml version="1.0" encoding="utf-8" ?>
<views:MvxContentPage
x:Class="MyApp.UI.Pages.PricingPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModels="clr-namespace:MyApp.Core.ViewModels;assembly=MyApp.Core"
xmlns:views="clr-namespace:MvvmCross.Forms.Views;assembly=MvvmCross.Forms"
Title="{Binding Title}"
x:DataType="viewModels:PricingViewModel"
x:TypeArguments="viewModels:PricingViewModel">
<views:MvxContentPage.Content>
<RefreshView Command="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}">
<CollectionView ItemsSource="{Binding MenuItems}" />
</RefreshView>
</views:MvxContentPage.Content>
</views:MvxContentPage>
视图模型:
using System.Threading;
using System.Threading.Tasks;
using MyApp.Core.ChurromigosApi;
using MyApp.Core.Services;
using MyApp.Core.ViewModels.Base;
using MvvmCross.Commands;
using MvvmCross.ViewModels;
namespace MyApp.Core.ViewModels
{
public class PricingViewModel : BaseViewModel
{
private readonly IMenuItemService menuItemService;
public PricingViewModel(IMenuItemService menuItemService)
{
this.menuItemService = menuItemService;
this.RefreshCommand = new MvxAsyncCommand(this.Refresh);
this.MenuItems = new MvxObservableCollection<MenuItem>();
this.Title = "Pricing";
}
public MvxObservableCollection<MenuItem> MenuItems { get; set; }
public IMvxAsyncCommand RefreshCommand { get; }
public bool IsRefreshing { get; set; }
public override Task Initialize()
{
this.IsRefreshing = true;
return Task.CompletedTask;
}
private async Task Refresh()
{
var allMenuItems = await this.menuItemService.GetMenuItems(CancellationToken.None);
this.MenuItems.Clear();
this.MenuItems.AddRange(allMenuItems);
}
}
}
【问题讨论】:
-
神秘问题是最糟糕的。我会尝试的事情,每次检查是否有效:1)重新启动。 2) 重建解决方案。 3)通过删除所有 bin 和 obj 文件夹彻底清理(首先保存到 repo 或将整个解决方案复制到另一个文件夹,以防意外删除重要的东西)。 4)创建一个全新的解决方案,创建一个新页面,看看是否可行。
-
请不要将代码或错误作为图片发布
-
@Jason 更新为代码而不是图像
-
@ToolmakerSteve 已经尝试了所有这些:(
-
能否请您发布有关此问题的相关错误日志?
标签: ios xamarin.forms pull-to-refresh