さて、ListBox コントロールを DataTable にバインドするときに問題が発生しました。
コード:
using (DbWrapper db = DbFactory.GetConnection("SQLite").WrapIn<MyDbWrapper>())
{
db.Open();
DataTable results = db.ExecuteQuery("SELECT id,title FROM schedule");
ScheduleList.DataSource = results;
ScheduleList.DisplayMember = "title";
ScheduleList.ValueMember = "id";
}
このコードは、SQLite データベースからデータを受け取り、それを ScheduleList にバインドすることになっていますが、コンパイルすると、ListBox が System.Data.DataRowView 文字列で満たされていることがわかります。
データベースに問題はありません。アプリケーションはデータを受信しており、データは正しいです。データテーブルを反復処理すると、id と title が列名として取得されるため、問題はありません。
バインディングの順序を変更するか、ListBox.Sorted プロパティを false に設定することで問題が解決する可能性があることを読みました。私はそれをすべて試しましたが、まだ成功していません。
助言がありますか?データ行を繰り返し処理して手動で追加する以外の解決策はありますか?
よろしくお願いします。