Hallo zusammen,
ich habe eine Form mit Controls die Artikelinfos darstellen.
d.h. Ich habe ein Artikelobjekt, und meine felder sind per Databinding an mein Artikelobjekt gebunden.
Nun kann es zu einem Artikel bis zu zehn VK-Preise geben.
d.h. ich habe 10 Textboxen auf meiner Form , die gefüllt werden müssen.
In meinen Artikelobjekt gibt es ein Property List<Artikelpreis>.
Dort können 0 - 10 Elemente enthalten sein.
wenn also nur drei Preise hinterlegt sind, dann sind auch nur 3 Elemente in der Liste und es werden auch nur die ersten 3 Textboxen gefüllt.
Gibt es eine Möglichkeit, die 10 Textboxen an die Liste zu binden ?
oder
wie macht man das ?
Gruß jogi
man bindet die List<Artikelpreis> z.B. an eine Listbox. Oder, wenn Artikelpreis selbst was komplizierteres ist, an ein DatagridView.
Ungewöhnlich übrigens, dass du nur ein Artikel-Objekt hast - was hattes damit auf sich?
Der frühe Apfel fängt den Wurm.
Gibt es auch eine Möglichkeit, die textboxen zu behalten ?
Artikelpreis ist nicht besonderes.
Ungewöhnlich übrigens, dass du nur ein Artikel-Objekt hast - was hattes damit auf sich?
was meinst du mit ungewöhnlich ?
Mein Usercontrol zeigt ein Artikelobjekt an.
Ich habe schon mehrere Artikelobjekte.
d.h. Artikel wird im Grid gewählt, und es wird ein Artikelobjekt im Detail angezeigt.
Hallo jogisarge,
Gibt es eine Möglichkeit, die 10 Textboxen an die Liste zu binden ?
Listen kann man nur an Listen- und nicht an skalare Controls binden. Wenn du keinen Listen-Control nehmen willst, kannst du nur in einer Schleife an jede einzelne TextBox ein einzelnes Artikelpreis-Objekt binden.
herbivore
OK, danke soweit.
nun durchlaufe ich meine Artikelpreisliste:
int zaehler;
zaehler = 1;
foreach (Artikelpreis apr in artikel.Artikelpreisliste)
{
...
zaehler++;
}
Angenommen die 10 Textboxen haben die Namen tbxPreis1 - tbxPreis10.
Wie kann ich in der Schleife die jeweilige Textbox ansprechen ?
Hallo jogisarge,
du kannst doch die TextBoxen besser gleich in einer Schleife im Code statt mit dem Designer erzeugen und dir dann sofort in einem Array merken. Dann nimmst du statt der foreach eine for-Schleife und bindest die Elemente mit dem gleichen Index.
Siehe auch [FAQ] Variablennamen zur Laufzeit zusammensetzen.
herbivore
Hallo,
wenn Dein Artikelobjekt die Schnittstelle ICustomTypeDescriptor implementiert, kannst du zusätzliche virtuelle Properties "vortäuschen".
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
Hallo herbivore,
ich verstehe das nicht ganz.
wenn ich eine Form enterfe, dann nehme ich die Textbox aus der Toolbox und lege die Textbox auf meiner form ab und stelle die eigenschaften ein.
Gerade Format und Position.
Ist es nicht viel komplizierter, die Textbox im code zu erzeugen ?
Ich meine, für mich als Anfäger !!!
Man sieht halt auch gleich im Designer, wie es aussieht ??
jogi
Hallo jogisarge,
Ist es nicht viel komplizierter, die Textbox im code zu erzeugen ?
nein, kopiere dir einfach den entsprechenden Code für die Erzeugung einer TextBox aus xyz.designer.cs. Anschließend muss du nur die Properties für die Location (meistens sogar nur die für die Y-Position) in Abhängigkeit vom aktuellen Schleifenindex anpassen.
herbivore