C# ObservableCollection列表找不到方法AddRange
我正在使用Xamarin.Forms MVVM和sqlLite net制作一个共享的移动应用程序 我收到一个错误,bc'AddRange'在ObservableCollection中不存在,或者我错误地使用了该函数 我想做的就是填写我的可观察收集列表。我必须使用循环手动添加吗?它的ObservableCollection有一个“Add”方法,但无法填充 错误:“ObservableCollection”不包含“AddRange”的定义,并且找不到接受“ObservableCollection”类型的第一个参数的可访问扩展方法“AddRange”(是否缺少using指令或程序集引用?) 使用以下参考文献:C# ObservableCollection列表找不到方法AddRange,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我正在使用Xamarin.Forms MVVM和sqlLite net制作一个共享的移动应用程序 我收到一个错误,bc'AddRange'在ObservableCollection中不存在,或者我错误地使用了该函数 我想做的就是填写我的可观察收集列表。我必须使用循环手动添加吗?它的ObservableCollection有一个“Add”方法,但无法填充 错误:“ObservableCollection”不包含“AddRange”的定义,并且找不到接受“ObservableCollection”类
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using TestApp01_MVVM_Basic.Models;
using Xamarin.CommunityToolkit.ObjectModel;
using Xamarin.Forms;
using System.Collections.Specialized;
using TestApp01_MVVM_Basic.Services;
using System.Collections.Generic;
using System.Linq;
下面我正在创建我的可观察集合。我在第行得到错误:AddRange()
publicobservableCollection产品列表{get;set;}
公共产品视图模型()
{
ProductsList=新的ObservableCollection();
}
公共异步任务MyDisplayList()
{
var getData=ProductService.DisplayProduct();
ProductsList.AddRange(getData);
}
在Servies类中,我有以下DisplayProduct()方法。从数据库返回一个列表
public static async Task<IEnumerable<ProductModel>> DisplayProduct()
{
await Init();
var GetProduct = await db.Table<ProductModel>().ToListAsync();
return GetProduct;
}
公共静态异步任务DisplayProduct()
{
等待初始化();
var GetProduct=await db.Table().ToListAsync();
退货产品;
}
您所寻找的是在Xamarin社区工具包包上实现的:哪个子类System.Collections.ObjectModel.ObservableCollection
,您可以使用ObservableCollection
而不是ObservableCollection
,因为后者没有实现这种方法
public ObservableRangeCollection<ProductModel> ProductsList { get; set; }
public ProductViewModel()
{
ProductsList = new ObservableRangeCollection<ProductModel>();
}
public async Task MyDisplayList()
{
var getData = await ProductService.DisplayProduct();
ProductsList.AddRange(getData);
}
public static async Task<IEnumerable<ProductModel>> DisplayProduct()
{
await Init();
var GetProduct = await db.Table<ProductModel>().ToListAsync();
return await Task.FromResult(GetProduct);
}
公共ObserverAgeCollection产品列表{get;set;}
公共产品视图模型()
{
ProductsList=新的ObserverAgeCollection();
}
公共异步任务MyDisplayList()
{
var getData=await ProductService.DisplayProduct();
ProductsList.AddRange(getData);
}
公共静态异步任务DisplayProduct()
{
等待初始化();
var GetProduct=await db.Table().ToListAsync();
返回等待任务。FromResult(GetProduct);
}
System.Collections.ObjectModel.ObservableCollection
没有AddRange
方法。您可以使用插入项
。以下是现在有意义的感谢。问题:我在第行遇到错误:ProductsList.AddRange(getData);。无法将System.Threading.Tasks.Task转换为System.collection.generice。IEumerableDisplayProduct
是一种异步方法,因此,当你打电话给itThanks指出@Jason我没有注意到时,你需要使用wait
it@ikhlasahmed如果这是您的问题的实际答案,请将上面的答案标记为答案question@ikhlasahmedgetData需要实现IEnumerable
查看
public ObservableRangeCollection<ProductModel> ProductsList { get; set; }
public ProductViewModel()
{
ProductsList = new ObservableRangeCollection<ProductModel>();
}
public async Task MyDisplayList()
{
var getData = await ProductService.DisplayProduct();
ProductsList.AddRange(getData);
}
public static async Task<IEnumerable<ProductModel>> DisplayProduct()
{
await Init();
var GetProduct = await db.Table<ProductModel>().ToListAsync();
return await Task.FromResult(GetProduct);
}