Laden...

Werte im Form aus anderer Klasse setzen/holen --> MVC?

Erstellt von math55 vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.201 Views
math55 Themenstarter:in
314 Beiträge seit 2007
vor 15 Jahren
Werte im Form aus anderer Klasse setzen/holen --> MVC?

Hallo,

ich habe ein normales Windows Form, in welchem eben ein paar Felder und Labels sind. Dann habe ich eine Klasse, welche einen Form Parameter hat, welchen ich aus meinem Form mit "this" fülle. Möchte ich jetzt aber in der aufgerufenen Methode auf die Textfelder zugreifen funtioniert das nicht. Was mache ich falsch ... benötige ich setter und getter für alle Felder im Form? Im Grunde war das mein Versuch MVC mit C# Forms zu machen. Ich nutze dafür das command Pattern ... also sprich, jemand klickt auf den "Speichern" Button, dann gibts ein SaveCommand und so weiter. Da ich aber im Command auch eine Meldung an eine Textbox im Form zurückgebe, muss ich auf dieses aus dem Command zugreifen können, oder ist meine Idee nicht die beste? Wie würde man MVC anders erstellen in C#?

Grüße und Danke 😃

946 Beiträge seit 2008
vor 15 Jahren

Dann habe ich eine Klasse, welche einen Form Parameter hat, welchen ich aus meinem Form mit "this" fülle. Möchte ich jetzt aber in der aufgerufenen Methode auf die Textfelder zugreifen funtioniert das nicht. Wenn das funktionieren sollte, müsste der Parameter MyForm sein oder darauf gecastet werden.

Ich würde aber lieber anders vorgehen, bspw. eine Struktur, welche die relevanten Daten enthält. Siehe auch [FAQ] Kommunikation von 2 Forms

Gelöschter Account
vor 15 Jahren
  1. solche klassen, die auch ncoh logiken beinhalten, sollten auf keinen fall auf die form zugreifen.
  2. in diesem fall behindertn die zugriffsmodifizierer. deine textbox ist private...(was aber auch so bleiben sollte)
math55 Themenstarter:in
314 Beiträge seit 2007
vor 15 Jahren

Hallo,

wie füllt man denn aber dann aus dem Controller die Felder des Forms?

Grüße

390 Beiträge seit 2008
vor 15 Jahren

Korrigiert mich, wenn ich falsch liege:

Meiner Ansicht nach ist der Controller nicht dazu da, dem View irgendwelche Daten wieder zu übergeben. Das View sollte vom Model informiert werden, sobald sich seine Daten ändern, worauf das View sich dann die Daten des Models besorgt.

using Skill

946 Beiträge seit 2008
vor 15 Jahren

Da ich aber im Command auch eine Meldung an eine Textbox im Form zurückgebe, muss ich auf dieses aus dem Command zugreifen können, oder ist meine Idee nicht die beste?

Das ändern sollte eigentlich Aufgabe der Form sein. Also Command aufrufen (sind wir hier in WPF?) und die Änderung des Textes zurückbekommen. Im Notfall auch die TextBox übergeben, was ich aber eher für zweifelhaft halte.

Aber das sollte in [FAQ] Kommunikation von 2 Forms (bzw. den Links) erklärt sein.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo math55,

MVC eignet sich für normale Window-Forms-Anwendungen nicht. Bei solchen ist es am besten, Controls und View zusammenzufassen und nur das Modell davon separat zu halten. Das Modell sollte dann, wie schon weiter oben gesagt, nicht auf das GUI zugreifen.

herbivore