Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

21

18.02.2016, 23:48

Dann wüsche ich dir noch einen schönen Abend! Vielen herzlichen Dank! :)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

22

19.02.2016, 20:30

Hey, heute beim Umprogrammieren habe ich dann noch eine Idee bekommen. Da würde ich gerne mal wissen, ob das MVVM kompatibel ist:

Wenn ich zwei Fenster programmiere, wo man unabhängig auswählen kann, was man sehen will. Dann kann es passieren, dass auf beiden der selbe InputPin angezeigt wird. Wenn ich jetzt in dem einen Fenster den Namen von einem InputPin ändere, dann wird der in dem anderen Fenster auch aktualisiert? Doch nur, wenn beide Views das selbe ViewModel (Objekt) haben!? Ist das MVVM-Prinzip oder muss mein Model nun auch noch ein Changed-Event für den Namen implementieren?
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

23

19.02.2016, 20:40

Beide Fenster haben das selbe Viewmodel-Objekt? Ich hab den Thread jetzt nur quer gelesen, aber ich meine über INotifyPropertyChanged wurde schon geredet. Also ja: Wenn der Name geändert wird muss dein ViewModel dieses Event werfen. Beide Views werden sich dann aktualisieren. Du hast ja hoffentlich den Wert per Data Binding aus dem ViewModel in die Views transportiert.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

24

19.02.2016, 21:10

Also ja: Wenn der Name geändert wird muss dein ViewModel dieses Event werfen. Beide Views werden sich dann aktualisieren.
Das geht aber doch nur, wenn sich beide Views auf das selbe Event registrieren, das muss deshalb im selben ViewModel sein. Dann bekommen also die Views beide das selbe ViewModel?

Du hast ja hoffentlich den Wert per Data Binding aus dem ViewModel in die Views transportiert.
Klar, das habe ich gemacht.
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

25

19.02.2016, 21:17

Nein, müssen sie nicht. Es sind zwei Instanzen von Views und damit auch zwei Instanzen von ViewModels. Das Model existiert vermutlich aber ja nur einmal. Also werden beide ViewModels informiert und danach dann beide Views.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

26

20.02.2016, 11:25

Wenn das so ist wie BlueCobold beschrieben hat (2 unterschiedliche ViewModels), dann ist sein genannter Weg korrekt. Das Model muss beide ViewModel informieren und die ViewModel informieren ihre jeweiligen Views. Ich hatte den Post so verstanden gehabt, als ob beide Views bereits das selbe ViewModel hätten. Was ungewöhnlich, aber nicht unmöglich wäre.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

27

20.02.2016, 13:30

Ich sagte nicht zwei verschiedene ViewModels. Ich sagte zwei Instanzen. Ob das ViewModel denselben Klassentyp hat oder nicht, ist egal. Du wirst aber vermutlich niemals zwei View Instanzen, aber nur eine ViewModel Instanz haben. Da wäre dann was faul.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

28

20.02.2016, 13:48

Wie gesagt, ich denke das es technisch funktionieren würde. Das heißt nicht das ich es empfehlen würde.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

29

20.02.2016, 15:10

Also werden beide ViewModels informiert und danach dann beide Views.
Die ViewModels werden dann also vom Model über einen Event informiert? So wie das mit der ValueProperty vom OutputPin?

Wenn ich mir das jetzt weiterüberlege, dann kann das doch mit allen Eigenschaften aus meinem Model passieren, die über die GUI veränderbar sind. Ist es da dann nicht sinnvoller, dass mein Model INPC implementiert, dann habe ich nicht so viele verschiedene Events?! Gibts da noch einfachere Varianten, sodass ich in meinem Model möglichst kein Eventkram + getter und setter benötige?

Du wirst aber vermutlich niemals zwei View Instanzen, aber nur eine ViewModel Instanz haben. Da wäre dann was faul.
Gut, das habe ich auch so vermutet - ist auch einfacher, wenn ich zwei Instanzen habe. ;)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

30

24.02.2016, 14:48

Wenn ich mir das jetzt weiterüberlege, dann kann das doch mit allen Eigenschaften aus meinem Model passieren, die über die GUI veränderbar sind. Ist es da dann nicht sinnvoller, dass mein Model INPC implementiert, dann habe ich nicht so viele verschiedene Events?! Gibts da noch einfachere Varianten, sodass ich in meinem Model möglichst kein Eventkram + getter und setter benötige?


Wenn die GUI von den Änderungen im Modell erfahren soll, dann musst du dafür sorgen, dass diese dann auch die Änderungen mitbekommt. Also INPC implementieren und dann in den ViewModels darauf reagieren oder als Alternative deine einzelnen Events zu einem zusammenzufassen, so dass du dich nur noch auf ein Event registrieren musst. Du musst halt die "Außenwelt" darüber informieren, dass sich was im Modell geändert hat, wenn es wichtig ist, dass Änderungen der Werte im Modell nach außen hin propagiert werden.

Werbeanzeige