I’m building a program that would allow me to pull data from by selecting it from a group of Trips, and populate all found items as part of that Trip into a listbox. When I select an item from the listbox, I want it to populate a series of textboxes that allow me to edit each field.
Here’s where my problem code lies within the Form (tripChoose is the combo box and listExpenses is the list box):
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;
}
The JIT debugger lets me know that I implicitly convert an object to a string
I’ve tried using a ToString method like this:
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());
}
I think I’m on the right track there, as I get an error telling me that the object reference is not set to an instance of an object.
I believe the issue is the implementation of the
ToString()method inTripExpense. When you use the string out of that and feed it into theFindTripit cannot find it anymore.What you can do instead is to have your original setting of the combo items and modify the
SelectedIndexChangedinsteadThis way the ComboBox text will still grab the
ToString()of theTripExpenseobject but you will still be able to get the actual object from theSelectedItemto play with rather than trying to requery for the object.