私は、トリップのグループから選択してデータを取得し、見つかったすべてのアイテムをそのトリップの一部としてリストボックスに入力できるプログラムを構築しています。リストボックスからアイテムを選択すると、各フィールドを編集できる一連のテキストボックスにデータが入力されます。
問題のコードはフォーム内にあります (tripChoose はコンボ ボックスで、listExpenses はリスト ボックスです)。
private void tripChoose_SelectedIndexChanged(object sender, EventArgs e)
{
IEnumerable<TripExpense> selectedExpenses = roster.ToFind((string)tripChoose.SelectedItem);
foreach (TripExpense item in selectedExpenses)
listExpenses.Items.Add(item);
}
private void listExpenses_SelectedIndexChanged(object sender, EventArgs e)
{
specificExpenses = (TripExpense)roster.TripFind((string)listExpenses.SelectedItem);
tripTextBox.Text = specificExpenses.Trip;
tripTextBox.Enabled = false;
descriptionTextBox.Text = specificExpenses.Description;
amountTextBox.Text = specificExpenses.Amount.ToString();
paymentMethodTextBox.Text = specificExpenses.PaymentMethod;
dateExpenseTimePicker.Value = specificExpenses.Date;
dateExpenseTimePicker.Enabled = true;
noteTextBox.Text = specificExpenses.Note;
}
JIT デバッガーは、オブジェクトを文字列に暗黙的に変換していることを知らせてくれます
次のような ToString メソッドを使用してみました。
private void tripChoose_SelectedIndexChanged(object sender, EventArgs e)
{
IEnumerable<TripExpense> selectedExpenses = roster.ToFind((string)tripChoose.SelectedItem);
foreach (TripExpense item in selectedExpenses)
listExpenses.Items.Add(item.ToString());
}
オブジェクト参照がオブジェクトのインスタンスに設定されていないというエラーが表示されるので、私は正しい方向に進んでいると思います。