Мне было поручено создать форму с 2 списками и 3 ярлыками.
Один список заполнен коллекцией походного снаряжения.Когда элемент в этом списке выбирается двойным щелчком, он копирует его во второй список.Один здесь, затем другой список с ценами будет заполнять Промежуточный итог для каждого элемента, который помещен во второй список.
Мне сказали, что я должен использовать параллельный массив, чтобы в конце концов, если элементы нужно было удалить из второго списка, он также вычел бы это из промежуточной суммы в конце.Ключом к этому приложению является наличие объекта списка в памяти параллельно вашему списку.
Например, вам нужен список цен, чтобы соответствовать списку доступных продуктов.Вам понадобится то же самое для списка купленных товаров и списка купленных цен на выбранные товары.Делая это, вы можете легко удалить элемент из заказа в зависимости от местоположения.
Если пользователь хочет удалить элемент 3 в окне списка покупок, вы также удалите элемент 3 из объекта списка покупок предметов в памяти.ТОГДА вы можете вызвать метод, который перебирает объект купленного прайс-листа, чтобы получить итоговую сумму.
Вот мой код, пока я знаю, что я близок, но, похоже, я не могу определить недостающую часть:
private void lstItems_DoubleClick(object sender, EventArgs e)
{
////lstItems.DataSource = lstprices;
// validate item is selected
// get price of selected item and add to order list
decimal SubTotalValue = 0;
int itemIndex = 0;
decimal ThisPrice = 0;
{
try
{
if (lstItems.Items.Count > 0)
{
lstOrder.Items.Add(lstItems.SelectedItem.ToString());
itemIndex = int.Parse(lstItems.GetItemText(lstItem.ToString()));
ThisPrice = lstprices.IndexOf(itemIndex);
SubTotalValue += ThisPrice;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
////lstItems.SelectedIndex = lstprices.SelectedIndex;
// get string value of selected item and add to order listbox
lblSubtotal.Text = lstprices.ToString();
decimal STotal = decimal.Parse(lblSubtotal.Text.ToString());
decimal SubTotals = STotal * (tax / 100);
decimal GTotal = calcGrandTotal(STotal, SubTotals);
//display totals from calculation performing functions
lblTax.Text = SubTotals.ToString();
lblTotal.Text = GTotal.ToString();
}
}
Я бы предположил, что я бы сделал нечто подобное для удаления предметов.Любая помощь будет принята с благодарностью.Этот код выдает ошибку в следующих строках:
lstOrder.Items.Add(lstItems.SelectedItem.ToString());
itemIndex = int.Parse(lstItems.GetItemText(lstItem.ToString()));
, и я не знаю, как это исправить