Benutzer mit den meisten Antworten
Objekte vergleichen

Frage
-
Hallo,
ich hab mal wieder eine WPF-Frage.
Kurze Erklärung:
Ich hab ein Formular, in dem ein Startpunkt mittels Textboxen und Comboboxwerten angelegt werden kann.
Über eine andere Combobox kann man gespeicherte Startpunkte auswählen, dadurch werden die Textboxen/Comboboxen mit den gespeicherten Werten vorbelegt.
Jetzt soll der User aber die Möglichkeit haben den gespeicherten Startpunkt zu ändern, z.B. soll er die Möglichkeit haben, einen ganz anderen Ort als Startpunkt festzulegen.
In dem darauffolgenden Button-Klick-Event möchte ich nun vergleichen, ob die gespeicherterte Startpunkt geändert wurde. Wenn ja, dann soll nämlich ein neuer Startpunkt erstellen werden, ansonsten kann mit dem gespeicherten Startpunkt weiter gearbeitet werden.
Wie kann man so einen Vergleich am Besten und Einfachsten durchführen?
Antworten
-
Ich gehe mal davon aus, dass ein Startpunkt ein Objekt mit verschiedenen Eigenschaften ist. Zur Anzeige bindest du ein neues Objekt, welches du ggf. mit den Daten aus einem vorhandenen Objekt füllst. Wenn der Bediener fertig ist (z.B. OK gedrückt hat), dann vergleichst du die Inhalte des neuen Objektes mit dem Inhalt des ursprünnglichen Objektes und entscheidest, ob das neue Objekt verworfen wird und das ursprüngliche Objekt weiter genutzt wird, oder, ob das neue Objekt der Liste der Objekte hinzugefügt wird und dann für die Weiterverarbeitung genutzt wird.
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Freitag, 25. September 2009 09:36
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 8. Oktober 2009 21:01
-
Hallo Braziliano,
von welchem System.Type ist Startpunkt ?
Wenn es eine eigene Klasse ist, so sollte sie Equals überschreiben
und ggf. auch IEquatable<T> so implementieren, so dass Du die
Objekte direkt vergleichen kannst.
Siehe auch: Richtlinien zum Überschreiben von Equals() und des Operators == (C#-Programmierhandbuch)
und http://blogs.msdn.com/jaredpar/archive/2009/01/15/if-you-implement-iequatable-t-you-still-must-override-object-s-equals-and-gethashcode.aspx
Gruß Elmar- Als Antwort vorgeschlagen Robert BreitenhoferModerator Mittwoch, 7. Oktober 2009 07:03
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 8. Oktober 2009 21:01
Alle Antworten
-
Ich gehe mal davon aus, dass ein Startpunkt ein Objekt mit verschiedenen Eigenschaften ist. Zur Anzeige bindest du ein neues Objekt, welches du ggf. mit den Daten aus einem vorhandenen Objekt füllst. Wenn der Bediener fertig ist (z.B. OK gedrückt hat), dann vergleichst du die Inhalte des neuen Objektes mit dem Inhalt des ursprünnglichen Objektes und entscheidest, ob das neue Objekt verworfen wird und das ursprüngliche Objekt weiter genutzt wird, oder, ob das neue Objekt der Liste der Objekte hinzugefügt wird und dann für die Weiterverarbeitung genutzt wird.
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Freitag, 25. September 2009 09:36
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 8. Oktober 2009 21:01
-
Hallo Braziliano,
von welchem System.Type ist Startpunkt ?
Wenn es eine eigene Klasse ist, so sollte sie Equals überschreiben
und ggf. auch IEquatable<T> so implementieren, so dass Du die
Objekte direkt vergleichen kannst.
Siehe auch: Richtlinien zum Überschreiben von Equals() und des Operators == (C#-Programmierhandbuch)
und http://blogs.msdn.com/jaredpar/archive/2009/01/15/if-you-implement-iequatable-t-you-still-must-override-object-s-equals-and-gethashcode.aspx
Gruß Elmar- Als Antwort vorgeschlagen Robert BreitenhoferModerator Mittwoch, 7. Oktober 2009 07:03
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 8. Oktober 2009 21:01
-
Hallo Robert,
da zumindest mich solche "offenen" Geschichten viel Lesezeit kosten, um dann festzustellen:
Titel war das was ich suchte, aber Inhalt nicht hilfreich, ergänze ich das mal:
Ein Beispiel:
Dim _quelleElement As UIElement = e.Source
Dim _zielElement As UIElement = sender
If Not (_quelleElement.Equals(_zielElement)) Then
-> Elemente verweisen auf verschiedene Objekte (können inhaltlich aber gleich sein..;)
Syntax mit(!) Erläuterung und Beispiel:
Object.Equals-Methode (Object):
Liebe Grüße
http://msdn.microsoft.com/de-de/library/bsc2ak47(v=vs.110).aspx
Ellen