Wyciąganie z listboxa ceny produktu

0

Dzień dobry,
Piszę tu, bo mam pewien problem, a nie potrafię jeszcze znaleźć rozwiązania, ponieważ programuję od niedawna.
Robię program w aplikacji Windows Forms,
i chciałam stworzyć coś w rodzaju sklepu internetowego,
mam klasę z klientem i 3 klasy z różnymi kategoriami przedmiotów.
Żeby dodać obiekt do klasy otwieram odpowiednią formatkę przyciskiem, wpisuję dane i wciskam przycisk, który dodaje wszystko po kolei do listboxa.
Następnie wybieram z listboxa odpowiednie przedmioty, wciskam "dodaj do koszyka" i pojawiają się one w drugim listboxie.
I tu zaczyna się problem.
Wszystkie klasy mają zmienną "cena", ale nie wiem jak wydobyć ceny z zaznaczonych i dodanych do koszyka przedmiotów aby podliczyć cenę końcową.
Jakby ktoś z państwa mógłby mi podpowiedzieć byłabym wdzięczna! :)

2

Bo do listboxa można podawać nie stringi, a obiekty, wtedy wyświetlane jest ToString(), a po zrzutowaniu jest normalny dostęp do składowych

To tyle rad na podstawie domysłow, daj kod

1

hej

  1. możesz dodać znak przed ceną.. po wybraniu produktu z cena zrobisz sobie split("ten znak") i zawsze pierwsza pozycja to produkt a druga cena. Spacje odradzam ponieważ produkty mogą się składać z dwóch słów

  2. z tego co pamiętam listbox posiada możliwość stworzenia kolumn.. zatem do pierwszej lądujesz produkt a do drugiej cene.. a potem po wybraniu takiej pozycji nie ma problem z odczytem danych.. tylko musisz sie pobawić eventami aby po wybraniu produktu zaznaczyła sie też cena no i jak ktos kliknie na cene to musi sie zaznaczyć produkt

1

Jak @AnyKtokolwiek napisał. Dodawaj do listboxów obiekty.

Potem suma dla towarów w listBox2

            decimal suma = 0;
            foreach (var item in listBox2.Items)
            {
                var twr = item as Towar;
                if(twr != null)
                    suma += twr.Cena;
            } 

Klasa Towar

public class Towar
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public decimal Cena { get; set; }

        public override string ToString()
        {
            return this.Name;
        }
    }
0

@jacek.placek: Hej! Dzięki za odpowiedź, jest mały sukces, bo rzeczywiście zaczęło wyświetlać cenę, niestety w każdym przypadku jest 0.
Nie jestem pewna dlaczego, ale to pewnie ma właśnie związek z tym, że dodaję stringi do listboxa?

Akcesoria przedmiot = new Akcesoria();
przedmiot.Nazwa = textBoxNazwa.Text;
przedmiot.Gatunek = textBoxGatunek.Text;
przedmiot.Kategoria = "Akcesoria";
przedmiot.Cena = numericUpDownCena.Value;
Akcesoria.ListaAkcesoriów.Add(przedmiot);
listBox1.Items.Add(przedmiot.Nazwa + " " + przedmiot.Gatunek + " " +przedmiot.Kategoria +" "+ przedmiot.Cena );
1

listBox1.Items.Add(przedmiot);

0

@jacek.placek: Zmieniłam już i wszystko ładnie działa i liczy, dzięki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1