ここには3つの要素があります。リストからコンボボックスにレコードを渡し、その一部をパースしてメソッドに値を返します
- 方法
- の束Windowsフォーム(tripChooseコンボボックスとlistExpenses、リストボックスである)
- オブジェクト自体(旅費)
私は "ToFind"メソッドにeTripだけを渡したいと思います。代わりに、文字列全体が渡されます。私はeだけを解析する必要があります。何か案は?私はまだコンボボックスに表示する量と旅行の両方が欲しいですが、私はメソッドに渡すためにe.Tripだけ必要です。以下を参照してください:
形で、私はこの
private void LoadExpenseListSums()
{
expenseTotalSelect.Items.Clear();
var dateSorted =
from e in roster
group e by e.Trip into tripGroup
select new { Trip = tripGroup.Key, SumAmount = tripGroup.Sum(e => e.Amount) };
foreach (var e in dateSorted)
tripChoose.Items.Add(string.Format("{0} | ${1}", e.Trip, e.SumAmount));
}
private void tripChoose_SelectedIndexChanged(object sender, EventArgs e)
{
listExpenses.Items.Clear();
tripTextBox.Clear();
descriptionTextBox.Clear();
amountTextBox.Clear();
paymentMethodTextBox.Clear();
noteTextBox.Clear();
IEnumerable<TripExpense> selectedExpenses = roster.ToFind((string)tripChoose.SelectedItem);
foreach (TripExpense item in selectedExpenses)
listExpenses.Items.Add(item);
}
LoaExpenseListSumsを持つフォームがロードされたときに起こる、私はe.Tripこの方法
に渡されるroster.ToFind((string)tripChoose.SelectedItem);
で一部だけになりたいですLoadExpenseListSumsのような書き換えられた場合
public IEnumerable<TripExpense> ToFind(string trip)
{
return this.Where(e => e.Trip == trip);
}
それは正常に動作します:
private void LoadExpenseListSums()
{
expenseTotalSelect.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)
tripChoose.Items.Add(e.Trip);
}
を書くことができ、あなたはどこかに疑問を持っているのですか?あなたは 'に基づいて分割することはできません|'と値を取得しますか? Payroll.ExpenseRecorderForm + tempTrip 私はちょうどdispTextクラスのプロパティ作る – V4Vendetta