c# - 如何在 Xamarin.Android 中将 DataTable 转换为 ListView 适配器
问题描述
如何像我在图片中显示的那样转换或使用 in 请帮助DataTable
我Listview
...Xamarin.Android
请注意,我Xamarin.Android
不使用Xamarin.Forms
这是我的代码:
namespace CRM.PL
{
[Activity(Label = "AC_Expense_Search")]
public class AC_Expense_Search : Activity
{
ListView listView1;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.L_Expense_Search);
// Create your application here
//**********************************************
listView1 = FindViewById<ListView>(Resource.Id.listView1);
//**************** Load Data ****************************
LoadData();
//**************** Event ****************************
}
public DataTable DataTableCollection { get; set; }
void LoadData()
{
DataTable dt = cls_Epense.Expense_select_Top10();
DataTableCollection = dt;
listView1.Adapter = dt;
}
}
}
解决方案
您不能直接DataTable
为ListView.Adapter设置。
- 您需要首先获取每个项目数据
DataTable
, - 然后你可以为每个
ListItem
s添加它们ListView
。 - 最后,您可以将
ListItem
s 设置为 ListView Adapter 的数据。
例如:
void LoadData()
{
DataTable dt = cls_Epense.Expense_select_Top10();
DataTableCollection = dt;
List<ListItem> listItems = new List<ListItem>();
for (int i = 0; i < dt.Rows.Count; i++)
{
ListItem listitem = new ListItem();
listitem.FirstParamater = dt.Rows[i][0].ToString();
listitem.SecondParamater = dt.Rows[i][1].ToString();
listitem.ThirdParamater = dt.Rows[i][2].ToString();
...
listItems.Add(listitem);
}
listviewAdapter = new ListViewAdapter(this, listItems );
listView1.Adapter = listviewAdapter;
}
ListItem的示例代码,您需要自定义ListItem
项目所需的内容。
public class ListItem
{
public string FirstParamater { get; set; }
public string SecondParamater { get; set; }
public string ThirdParamater { get; set; }
}
推荐阅读
- javascript - 计算 GeoJSON LineString 覆盖的面积和指定的线重
- javascript - TypeError 不是 Javascript 原型的递归方法中的函数
- docker - 使用 docker 时 Heroku 容器释放错误
- discord - Discord.js 欢迎命令
- python - TypeError:“方法”和“方法”的实例之间不支持“>”
- c# - 位未按预期打开
- c# - 在c#中找到随机数组中的第一个奇数
- arrays - 填充结构数组时遇到问题
- google-bigquery - 如何在 Google Big Query 上合并具有相同列名的多个表?
- reactjs - 使用 nginx 教程服务 react-flask 应用程序不起作用