首页 > 解决方案 > 如何在 Xamarin.Android 中将 DataTable 转换为 ListView 适配器

问题描述

如何像我在图片中显示的那样转换或使用 in 请帮助DataTableListview...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;
                }

            }
        }

标签: c#visual-studiodatatablexamarin.androidandroid-listview

解决方案


您不能直接DataTableListView.Adapter设置。

  1. 您需要首先获取每个项目数据DataTable
  2. 然后你可以为每个ListItems添加它们ListView
  3. 最后,您可以将ListItems 设置为 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; }
}

推荐阅读