アダプターから入力するリストビューがあります。私の元のコードはデータがテーブルから返されていましたが、結合を使用してクエリからコードを取得する必要があるため、使用した例は機能しなくなり、クエリの使用方法を見つけることができませんでしたこのため。私はORMリポジトリを使用しています。私のORMrepositoryには、この機能があります
public IList<Coe> GetmyCoe()
{
using (var database = new SQLiteConnection(_helper.WritableDatabase.Path))
{
string query = "SELECT Coe.Id, Adult.LName + ', ' + Adult.MName AS Name, Coe.Createdt FROM Adult INNER JOIN Coe ON Adult.CoeMID = Coe.Id";
return database.Query<Coe>(query);
}
}
実際に必要なデータを返します。次に、アクティビティページにこれがあります。
_list = FindViewById<ListView>(Resource.Id.List);
FindViewById<ListView>(Resource.Id.List).ItemClick += new System.EventHandler<ItemEventArgs>(CoeList_ItemClick);
var Coe = ((OmsisMobileApplication)Application).OmsisRepository.GetmyCoe();
_list.Adapter = new CoeListAdapter(this, Coe);
私のアダプタページは私が問題を抱えている場所です.私はもうやっていないテーブルを見るように設定されていることを知っています. しかし、私が今渡しているものを変更する方法がわかりません。現在の CoeListAdapter は次のとおりです。
public class CoeListAdapter : BaseAdapter
{
private IEnumerable<Coe> _Coe;
private Activity _context;
public CoeListAdapter(Activity context, IEnumerable<Coe> Coe)
{
_context = context;
_Coe = Coe;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var view = (convertView
?? _context.LayoutInflater.Inflate(
Resource.Layout.CoeListItem, parent, false)
) as LinearLayout;
var Coe = _Coe.ElementAt(position);
view.FindViewById<TextView>(Resource.Id.CoeMID).Text = Coe.Id.ToString();
//view.FindViewById<TextView>(Resource.Id.GrdnMaleName).Text = Coe.Name;
view.FindViewById<TextView>(Resource.Id.CreateDt).Text = Coe.CreateDt;
return view;
}
public override int Count
{
get { return _Coe.Count(); }
}
public Coe GetCoe(int position)
{
return _Coe.ElementAt(position);
}
public override Java.Lang.Object GetItem(int position)
{
return null;
}
public override long GetItemId(int position)
{
return position;
}
}
渡されたデータを使用できるように CoeListAdapter.cs ページを設定するにはどうすればよいですか。ご覧のとおり、Coe.Name が Coe のテーブル モデルにないため、TextView にエラーが発生するコメント アウトされた行があります。ただし、クエリで返されます。私の問題は IEnumerable だと思いますが、何に変更すればよいですか。私はモバイル開発に不慣れで、Mono 用に VS2010 を訴えています