我有一个类,ExpenseItem
和一个基于该类的列表。将查询结果返回给列表框
我目前正在设计一个带有组合框的窗体,它允许我选择特定类型的ExpenseItem
Trip,并在列表框中显示所有结果。
表单代码(tripSelect
是组合框和listExpenses
是列表框):
private void LoadExpenseList()
{
tripSelect.Items.Clear();
var dateSorted =
from e in roster
group e by e.Trip into tripGroup
select new { Trip = tripGroup.Key };
foreach (var e in dateSorted)
tripSelect.Items.Add(e.Trip);
}
private void LoadExpenseDetail()
{
listExpenses.Items.Clear();
var dateSorted =
from e in roster
orderby e.Trip
select e;
foreach (var e in dateSorted) ;
}
private void ExpenseRecorderForm_Load(object sender, EventArgs e)
{
}
private void tripSelect_SelectedIndexChanged(object sender, EventArgs e)
{
selectedExpense = (ExpenseItem)roster.ToFind((string)tripSelect.SelectedItem);
listExpenses.Items.Add(selectedExpense);
}
private void listExpenses_SelectedIndexChanged(object sender, EventArgs e)
{
tripTextBox.Text = selectedExpense.Trip;
tripTextBox.Enabled = false;
descriptionTextBox.Text = selectedExpense.Description;
amountTextBox.Text = selectedExpense.Amount.ToString();
paymentMethodTextBox.Text = selectedExpense.PaymentMethod;
dateExpenseTimePicker.Value = selectedExpense.Date;
dateExpenseTimePicker.Enabled = true;
noteTextBox.Text = selectedExpense.Note;
}
感谢。尽管(由于FirstOrDefault()),它仍然只检索第一个值。 因为,就像你说的,我无法从IEnumerable中投射。 – user1350264 2012-04-23 05:08:26
所以你想达到什么目的。使用它的代码试图将其转换为'ExpenseItem',所以我认为它需要一个值。返回列表有什么目的,除非你想要多个匹配。 – aqwert 2012-04-23 05:09:57
我确实想要多个值。该表单允许我选择行程类型,然后显示所有关联的行项目并对其进行编辑。 – user1350264 2012-04-23 05:11:39