Arrays 在Xamarin表单的列表视图中添加和显示数组项
[在此处输入图像描述][1]我正在尝试在列表视图中添加和显示所选数据,但不幸的是无法在列表视图中显示数据,如果有人可以帮助,谢谢! (这是我的代码版本)Arrays 在Xamarin表单的列表视图中添加和显示数组项,arrays,listview,xamarin,Arrays,Listview,Xamarin,[在此处输入图像描述][1]我正在尝试在列表视图中添加和显示所选数据,但不幸的是无法在列表视图中显示数据,如果有人可以帮助,谢谢! (这是我的代码版本) 名称空间AppContacts { 公共部分类主页:ContentPage { SQLiteAsyncConnection _connection=DependencyService.Get().GetConnection(); 公共主页() { 初始化组件(); this.BindingContext=this; ReadSelectedDa
名称空间AppContacts
{
公共部分类主页:ContentPage
{
SQLiteAsyncConnection _connection=DependencyService.Get().GetConnection();
公共主页()
{
初始化组件();
this.BindingContext=this;
ReadSelectedData();
}
public void ReadSelectedData()
{
int[]intArray;
intArray=新整数[4];
intArray[0]=175;
intArray[1]=197;
intArray[1]=757;
intArray[3]=915;
var list=_connection.Table().ToListAsync().Result;
var myAL=new ArrayList();
foreach(intArray中的int行列表)
{
var NewItem=list.Where(x=>x.Contact_ID.Equals(rowList));
myAL.Add(新项目);
}
}
}
}
添加了模型类和XAML页面,XAML页面名称为ContentPage1
XAML页面
页面名称为ContentPage1
模范班
使用SQLite
名称空间AppContacts.Models
{
公共类联系人
{
[主密钥][自动增量]
public int Contact_ID{get;set;}
公共字符串联系人名称{get;set;}
公共字符串联系人地址{get;set;}
公共字符串联系人_电子邮件{get;set;}
}
}
[输出][1]
[在此处输入图像描述][2]
[1]: https://i.stack.imgur.com/ci5fK.png
[2]: https://i.stack.imgur.com/ppmp2.jpg
尝试调用OnAppearing()中的ReadSelectedData
方法,并为列表视图设置项资源
例如:
protected override async void OnAppearing()
{
base.OnAppearing();
int[] intArray;
intArray = new int[4];
intArray[0] = 175;
intArray[1] = 197;
intArray[2] = 757;
intArray[3] = 915;
var list = await _connection.Table<Contacts>().ToListAsync().Result;
var myAL = new ArrayList();
foreach (int rowList in intArray)
{
var NewItem = list.Where(x => x.Contact_ID.Equals(rowList));
myAL.Add(NewItem);
}
listView.ItemSource = myAL;
}
应返回一个IEnumerable
对象
因此,您可以按如下方式修改代码:
foreach (int rowList in intArray)
{
var NewItem = list.Where(x => x.Contact_ID.Equals(rowList));
myAL.Add(NewItem.FirstOrDefault());
}
foreach (int rowList in intArray)
{
foreach (var newitem in list)
{
if(newitem.Contact_ID == rowList)
{
myAL.Add(newitem);
}
}
}
使用NewItem.FirstOrDefault()
获取联系人
对象
否则,您不能使用可枚举方法。如果方法要执行此操作,也可以使用foreach
实现以下目的:
foreach (int rowList in intArray)
{
var NewItem = list.Where(x => x.Contact_ID.Equals(rowList));
myAL.Add(NewItem.FirstOrDefault());
}
foreach (int rowList in intArray)
{
foreach (var newitem in list)
{
if(newitem.Contact_ID == rowList)
{
myAL.Add(newitem);
}
}
}
1) 不要在异步操作中使用Result
,学习使用async/wait,2)不要在循环中分配ItemsSource,在循环完成后执行,3)是否确定myAL
实际包含数据?4)LIstView的XAML在哪里?嗨,您需要先检查list
是否包含数据,然后可以检查NewItem
是否包含匹配的数据。@Jason感谢您的及时回复,已经在循环后尝试了ItemSource,还使用了async/await,myAL在检查断点时确实包含了数据。这可能是XAML的问题,但由于您没有发布“很难说hi@Junior_Jiang”的帖子,谢谢您的回复,所以在使用断点检查时,列表确实包含了数据,NewItem也包含了匹配的数据!非常感谢@Junior Jiang MSFT,按照您的建议进行了尝试,在使用断点解包时显示每个数组项,但列表视图仍然为空@EmDe你能不能把myAL
的字符串数据用断点截图更好地显示出来?Jian MSFT,我手机的截图添加了,谢谢你的帮助!您好@Junior Jiang MSFT,谢谢您一直在帮助我并要求链接共享,请给我一点时间创建一个新的数据文件与您共享链接,再次感谢您的帮助!蒋MSFT,谢谢,答案很有用我点击了标记