我遇到了刷新列表的问题。
我MasterDetailPage
在 Visual Studio 2019 (Xamarin.Forms 4.3.0.991250) 和 Akavache 6.6.1 中使用 init default,变量是 Items of type ObservableCollection<TodoItem>
。
首先,我将一个项目添加到缓存中(我称这个对象为 TodoItem)。然后显示 ListView 与从 Akavache 缓存获取的 Items 绑定,但它不起作用,Items 有值 ->ListView
不刷新。
我尝试了一些东西:
更改版本(Xamarin.Forms 和 Akavache),例如:XF 4.1 最高版本和 akavache 降级 6.0、6.1、6.2... => 不工作。
如果使用硬编码 new ObservableCollection(new ListView(){ ... }) => 设置项目,它正在工作。
如果应用程序正在运行,我会更改布局上的某些内容并保存(Xaml 热重载)-> 它正在工作。
公共 ObservableCollection 项目 { 获取;放; } = 新的 ObservableCollection();
#region AddNewCommand private Command _addNewCommand; public Command AddNewCommand => _addNewCommand ?? (_addNewCommand = new Command(async (p) => await AddNewExecute(), (p) => !IsBusy)); private async Task AddNewExecute() { var key = Guid.NewGuid().ToString().Substring(0, 5); await BlobCache.LocalMachine.InsertObject<TodoItem>(key, new TodoItem() {Id=key.Substring(0,2),Text="abc",Description="def" }, new TimeSpan(1, 0, 0)); var list = await BlobCache.LocalMachine.GetAllObjects<TodoItem>(); Items = new ObservableCollection<TodoItem>(list); } #endregion