Forum: PC-Programmierung C#: Objekt einer Klasse in Laufzeit generiern


von Paul Gillesberger (Gast)


Lesenswert?

Ich bin ziemlich neu bei der Programmierung mit C# und stehe jetzt vor 
einem Problem.
Ich habe eine Klasse, in der verschiedene Eigenschaften deklariert sind 
und weiß auch, wie ich während der Entwicklung ein neues Objekt dieser 
Klasse erstelle. In meiner Anwendung soll der Benutzer aber die 
Möglichkeit haben, auf einen "+"-Button zu drücken und dann in einem 
sich öffnenden Fenster Werte einzugeben. Bei klicken auf "OK" wird dann 
ein neues Objekt generiert, dass diese Werte übertragen bekommt.
Meine Frage ist jetzt, wie ich während der Laufzeit ein neues Objekt 
erstelle.

Wäre nett, wenn mir wer weiterhelfen könnte.

von Peter II (Gast)


Lesenswert?

Paul Gillesberger schrieb:
> Meine Frage ist jetzt, wie ich während der Laufzeit ein neues Objekt
> erstelle.

macht man doch ständig, verstehe das Problem nicht?
1
class test {};
2
3
test x = new test;

von Paul Gillesberger (Gast)


Lesenswert?

Danke für die schnelle Antwort. Vielleicht habe ich mich schlecht 
ausgedrückt.
Ich meine, dass der Benutzer die Möglichkeit haben soll eine unbegrenzte 
Anzahl an Objekten zu erstellen, also jedes Mal, wenn er auf "+" klickt.

von Peter II (Gast)


Lesenswert?

Paul Gillesberger schrieb:
> Ich meine, dass der Benutzer die Möglichkeit haben soll eine unbegrenzte
> Anzahl an Objekten zu erstellen, also jedes Mal, wenn er auf "+" klickt.

ich versteht das Problem immer noch nicht. Einfach die neuen Objekte in 
eine Liste einfügen bei jedem "+".

von Dr. Sommer (Gast)


Lesenswert?

Dafur brauchst du eine Collection Klasse wie zB List oder Vector, die 
eine flexible Anzahl Objekte speichern kann. Google mal danach...

von Plauzi (Gast)


Lesenswert?

Dann musst du die Objekte (oder besser gesagt: die Referenzen) in einer 
geeigneten Datenstruktur ablegen.

Z.B. in einer "List<DeinTyp>":

list.Add(new DeinTyp(... Parameter ...));

von Paul Gillesberger (Gast)


Lesenswert?

Okay, danke für die Antworten. Mit der List<> funktioniert es eigentlich 
gut. Eine Frage nur noch: Ich habe die Daten an eine ListBox gebunden 
und wenn ich auf "+" klicke werden auch die eingegebenen Parameter 
angezeigt, wenn ich aber nochmal drauf klicke, verändert sich nichts. 
Wird nur das Binding nicht aktualisiert, da die Werte ja eigentlich 
generiert werden sollten?

von Arc N. (arc)


Lesenswert?

Paul Gillesberger schrieb:
> Okay, danke für die Antworten. Mit der List<> funktioniert es eigentlich
> gut. Eine Frage nur noch: Ich habe die Daten an eine ListBox gebunden
> und wenn ich auf "+" klicke werden auch die eingegebenen Parameter
> angezeigt, wenn ich aber nochmal drauf klicke, verändert sich nichts.
> Wird nur das Binding nicht aktualisiert, da die Werte ja eigentlich
> generiert werden sollten?

Genau, List<> teilt der ListBox nicht mit, dass etwas verändert wurde.
Wenn statt List<> BindingList<> verwendet wird, sollte es funktionieren.

von Paul Gillesberger (Gast)


Lesenswert?

Danke!
Wenn ich jetzt allerdings mit einem weiteren Button z.B. die IsReadOnly 
Eigenschaft einer TextBox in einem ListBox Template verändern möchte, 
werden immer alle umgestellt.
Gibt es dafür eine Lösung?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.