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

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

21

26.11.2013, 16:56

ich habe es zumindest noch nie gesehen :) Blend kann es auf alle Fälle.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

26.11.2013, 17:12

Ist Blend nicht mittlerweile im VS integriert worden?
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]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

23

26.11.2013, 17:42

Danke BlueCobold und auch TrommlBomml für euer Beispiel. Es ist aber doch ziemlich kompliziert wenn man so etwas zum ersten mal sieht.
Ich werde mir mal ein neues Projekt erstellen und deinen Code reinkopieren und mal damit etwas rumexperimentieren, vom durchlesen alleine habe ich es noch nicht wirklich begriffen.

Gestern habe ich noch eine andere Möglichkeit gefunden, wie ich das Click-Ereignis von meinem UserControl erhalte, mit eurem MVVM hat das aber wohl nichts mehr zu tun:

C#-Quelltext

1
 MailItem mItem = new MailItem (this); //Aktuelles Fenster übergeben

C#-Quelltext

1
2
3
4
5
6
7
8
9
private MainWindow mainWindow;
public MailItem (MainWindow mw)
{ InitializeComponent();
            mainWindow = mw;//...
}
  private void button2_Click(object sender, RoutedEventArgs e)
        {            
mainWindow.test();
        }


Ich hab zwar jetzt nicht die Logik von der Darstellung getrennt, aber wenn man jetzt nur sich den Arbeitspeicher-/Rechenleistungsbedarf anschaut, wird diese eine Referenz wohl nicht alles verschlechtern...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

24

26.11.2013, 18:21

Es verschlechtert aber den Aufbau deines Programms als solches. Jetzt kennt das MailItem nämlich das MainWindow. Das heißt ein Unterelement (child-control) kennt den Parent. Das ist doch sehr kontraproduktiv. Besser wäre ein Event-Handler gewesen. Mit MVVM hat das allerdings rein gar nichts zu tun, das stimmt wohl.
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]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

25

26.11.2013, 22:04

Es ist für mich jetzt umständlicher, da ich beim Erstellen von einem MailItem nun auch immer das MainWindow übergeben muss, aber warum genau ist es kontraproduktiv wen ein child das parent kennt, dass ist doch eigentlich gut so ( :D ), wenn man auf das parent-control zugreifen muss, kann man es so und wenn nicht, dann hat man eben eine Referenz, welche man nicht benötigt, welche aber auch nicht schadet.
Wenn standardmäßig ein Objekt das Objekt welches es selbst erstellt hat kennt, wäre es doch bestimmt oft praktisch. Warum gibt es dann nicht so etwas?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

26

26.11.2013, 22:11

warum genau ist es kontraproduktiv wen ein child das parent kennt, dass ist doch eigentlich gut so ( :D )


Stell dir mal vor jede Klasse, die du in eine List<> packen könntest würde diese List<> kennen (können/müssen). Und jetzt das ganze noch mit Dictionary<>, LinkedList<>, etc..
Was ist, wenn du deine Items plötzlich nicht mehr im MainWindow, sondern in einem Dialog anzeigen lassen willst? Dann darfst du alle Stellen, an denen du auf das MainWindow verweist wieder umbasteln.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

27

26.11.2013, 22:14

Wenn standardmäßig ein Objekt das Objekt welches es selbst erstellt hat kennt, wäre es doch bestimmt oft praktisch. Warum gibt es dann nicht so etwas?
Weil das Quatsch ist und man es in 99% der Fälle nicht braucht, in 0.99% einen EventHandler oder ein Interface an das Child übergeben kann und in all den 0.01% anderen Fällen irgendwas anderes grausam schief gelaufen ist.
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]

Werbeanzeige