WPF-Projekt [LRPC]

  • WPF

Es gibt 111 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaHo.

    WPF-Projekt [LRPC]

    Hallo an alle,

    aufgrund des sehr guten Vorschlages von @Nofear23m habe ich diesen Thread aufgemacht, hier soll ein Projekt von mir (LRPC) welches ich nicht OOP-Konform geschrieben habe, als Grundlage dienen, dieses in der WPF und möglichst OOP-Konform neu zu erstellen.
    Das "alte" Projekt ist an einem Beitrag von mir angehängt.

    Besonders wichtig ist mir hierbei, das Grundkonzept zu verstehen, was mir bisher einfach nicht gelungen ist/gelingt. Nofear23 meinte das sich mein Projekt sehr gut eignen würde um es, als Basis für ein WPF-Übungsprojekt zu verwenden, bei welchem ich dann hoffentlich hinter das Geheimniss der OOP, der WPF und zumindest zum Teil des MVVM kommen könnte.

    Da ich nicht einfach mit 0 Anfangen möchte, habe ich nun bereits eine Projektmappe vorbereitet(Anhang), die zumindest schon einmal das grundlegende Datenmodell enthält, welches ich hoffentlich bereits korrekt vorbereitet habe. Ich habe schon einmal alles hineingepackt von dem ich vermute das es von Nöten sein wird. Der nächste Schritt wäre vermutlich, das erstellen der Windows/GUI, damit eine Basis besteht anhand derer man dan das für mich noch nicht vorstellbare ViewModel erstellen kann. Korrigiert mich bitte instant, sollte das die falsche Herangehensweise sein, evtl. ist ja erst einmal etwas anderes vordringlicher ?

    @Nofear23m evtl. kannst du mir ja bereits sagen ob ich das ich nenne es mal "Grundgerüst" zumindest ansatzweise korrekt erstellt habe.

    Sollte bisher nichts zu beanstanden sein oder kein Fehler vorliegen, würde ich mich (leider erst wieder Morgen Abend zeitlich möglich) erstmal an das Designen der Windows machen. Da du meintest das sich dies hier auch sehr gut für ein Community-Projekt eignen würde und ich diese Idee einfach Klasse finde, wollte ich natürlich erstmal fragen, ob der Weg bisher der richtige ist oder ob eine andere herangehensweise sinnvoller wäre. Evtl. hast du (oder Ihr alle ^^) hier ja bereits den ein oder anderen Tipp.

    P.s. Für das erstellen des Grundgerüsts hab ich in deinem WPF-Notes Projekt zu spicken versucht ^^ und zumindest das was ich glaube begriffen zu haben als Vorlage verwendet.


    Besten Dank an dich für deinen Vorschlag, und ein Danke an alle die mir hier schon so oft tatkräftig geholfen haben und immer noch tun =)


    LG
    Dateien
    • LRPC WPF.rar

      (7,69 MB, 35 mal heruntergeladen, zuletzt: )
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Hallo und guten Morgen

    Erstmal eine wichtige Frage. Bist vertraut mit einer Quellcodeverwaltung wie z.b. Git ? (GitHub, VSTS)
    Wenn wir hier bei jeder Änderung ein Projekt hochladen wird das Forum zugemüllt. Zudem ist eine Quellcodeverwaltung sehr praktisch - nicht nur wenn man im Team arbeitet.

    Falls du damit noch nicht in berührung gekommen bist solltest du dir das mal ansehen, ich arbeite eigendlich nicht mehr ohne weil es super angenehm ist.

    So, ein paar Fragen habe ich:
    • Die Spire-Bibiliothek haste ja drinnen um Word Dokumente zu erstellen. Gehts/gings hier nur ums drucken? Wenn ja können wir die rausmachen, das geht mit der WPF mit OnBoardmittel. Der Vorteil ist das der Enduser kein Word am Rechner oben haben müsste.
    • Calculation.vb und Extension.vb können wir ja mal rausnehmen wichtig. Alles was nicht benötigt wird sollte mal raus. So müssen wir uns erstmal nicht darum kümmern ob der Code in Ordnung ist. Muss ja nicht sein. Siehe Anhang.
    So, wichtig ist die erste Frage, denn wenn wir mal einen weg finden gemeinsam an einen Projekt zu arbeiten können wir weitermachen, bringt ja nix hier 5 x am Tag Rar-Files hin und her zu senden.

    Grüße
    Sascha
    Bilder
    • Fehler.png

      19,1 kB, 626×189, 49 mal angesehen
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Zum Thema Quellcodeverwaltung kann ich den AzureDevOps empfehlen, wenn Du ein Microsoft konto hast, ist das kostenlos.
    Ich arbeite auch nicht mehr ohne, das ist super easy zu verstehen und läuft wie schmitz Katze. Du kannst im AzureDevOps dann auch Leute zu deinem Projekt einladen...
    "Hier könnte Ihre Werbung stehen..."
    Erstmal eine wichtige Frage. Bist vertraut mit einer Quellcodeverwaltung wie z.b. Git ? (GitHub, VSTS)

    Nein, bisher habe ich derartiges noch nie benutzt, werde mir das heute abend mal ansehen.

    Die
    Spire-Bibiliothek haste ja drinnen um Word Dokumente zu erstellen.
    Gehts/gings hier nur ums drucken? Wenn ja können wir die rausmachen, das
    geht mit der WPF mit OnBoardmittel. Der Vorteil ist das der Enduser
    kein Word am Rechner oben haben müsste.

    JaIn,
    die Spire.Doc verwende ich, um in einem vorhandenen WordFile (ist von
    der Firma her als Word, notwendig, weis der Geier warum) einzelne
    Platzhalter anschließend durch die vom Programm errechneten Werte zu
    ersetzen, also die errechneten Kosten werden direkt eingetragen,
    Erstellungs-Datum wird angepasst, Ersteller-Name usw. ich hatte damals
    lange Zeit versucht dies ohne zusätzliche .dll zu bewerkstelligen, habe
    aber keinen Weg gefunden wie es "mit Bordmitteln" gehen solle,
    insebesondere da ich es bevorzuge wenn die Word-Datei direkt verändert
    wird, ohne sichtbar geöffnet zu werden.

    Calculation.vb
    und Extension.vb können wir ja mal rausnehmen wichtig. Alles was nicht
    benötigt wird sollte mal raus. So müssen wir uns erstmal nicht darum
    kümmern ob der Code in Ordnung ist. Muss ja nicht sein. Siehe Anhang.

    Die
    Calculation ist drinn, weil ich anhand dieser Klasse ja die
    Berechnungen ausführe, wenn du sagst da gibt es einen besseren Weg und
    das ich die weg lassen soll, dann mach ich dass natürlich. Die
    Extensions, kann man natürlich rausnehmen wenn du magst, isch schleppe
    die seit 2-3 Jahren in jedem Projekt mit, da ich mich an einige
    Funktionen davon gewohnt habe, wie die verscheidenen Parse-Befehle usw.

    Da ich ja hier von dir lernen will, schaffst du an =) wenn ichs rausnehmen soll, dann gib mir Bescheid, dann nehm ichs raus. =)
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    asusdk schrieb:

    aber keinen Weg gefunden wie es "mit Bordmitteln" gehen solle,
    insebesondere da ich es bevorzuge wenn die Wort-Datei direkt verändert
    wird, ohne sichtbar geöffnet zu werden.

    Geht zwar mit Boardmitteln auch aber OK, anscheinend hast du ja bereits eine Lizenz gekauft, also ist es ja jetzt nicht so schlimm. Ich würde es allerdings definitiv als NuGet einbinden denn als Resource in Projekt zu packen um die Files dann zu kopieren ist murks.

    asusdk schrieb:

    Calculation ist drinn, weil ich anhand dieser Klasse ja die
    Berechnungen ausführe, wenn du sagst da gibt es einen besseren Weg und
    das ich die weg lassen soll, dann mach ich dass natürlich

    Ich habe mir die "Berechnungen" jetzt nicht angesehen. Wir lassen das mal drinnen werden es aber nicht verwenden. Soll und jetzt nur zum "Code-Klauen" dienen. Warum? Das soll dann die jeweilige Klasse erledigen.
    Jeder Klasse macht das was sie selbst betrifft. Nicht mehr, nicht weniger. Sprich: Wenn du aus einem Product ein Result Objekt erzeugen/berechnen willst gehört der Code entweder in die Product-Klasse oder in die Result-Klasse. Ich persönlich würde es vermutlich in die Result-Klasse packen und einen Konstruktor erstellen welchem ich ein Product übergebe. Und schwups kommt eine Result-Instanz heraus welche die Eigenschaft so befüllt hat wie du das willst (anhand der Berechnungen). Das ist OOP. Alles passiert genau dort wo es passieren soll.

    asusdk schrieb:

    Die
    Extensions, kann man natürlich rausnehmen wenn du magst

    Ich bin kein Freund davon Code drinnen zu haben welcher nicht in Verwendung ist. Wozu auch. Brauchst du einen Teil davon packst du ihn rein, oder du erstellst dir ein eigenes NuGet-Package und bindest dann das Paket ein.

    Ich sehe das richtig, bis jetzt hast du in XML Files gespeichert. Willst du das so weiterführen oder willst du was anderes? Soll es eine reine Einzelplatzlösung sein?
    Ich denke mir ja das wenn ein User ein Produkt anlegt sollen dann nicht die anderen User auch dieses Produkt zur Verfügung haben?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo,

    in deinem Model Ordner hast du ja deine Models drinne.
    Dort hast du es einmal richtig gemacht => bei dem Result Model.
    In dem Product Model hast du (meiner Meinung nach) fälschlicher Weise schon RaisePropertyChanged() gemacht. Das kommt erst im ViewModel.

    Das ViewModel ist ja mit der View verbunden und muss diese über Änderungen (mit Hilfe von INotifyPropertyChanged()) informieren.
    Dass Model hat ja nichts mit der View zu tun, und muss das so auch nicht implementieren. Hier reichen dann auch einzeilige Properties.

    Ach ja: bitte benutze eine Codeverwaltung, das ist für alle entspannter. :)

    Viele Grüße
    Florian

    flori2212 schrieb:

    bitte benutze eine Codeverwaltung, das ist für alle entspannter.

    Genau, erst dann werde ich erst weitermachen, sonst artet das hier aus mit den Dateianhängen. Wir müssen den Server ja nicht zumüllen.

    Aber das wird er schon hinbekommen. Ansonsten kann ich zur not das PRojekt in meinem Account erstellen und für dann alle User hinzu.
    @asusdk wäre dir das lieber=

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Geht zwar mit Boardmitteln auch aber OK, anscheinend hast du ja bereits eine Lizenz gekauft, also ist es ja jetzt nicht so schlimm. Ich würde es allerdings definitiv als NuGet einbinden denn als Resource in Projekt zu packen um die Files dann zu kopieren ist murks.

    Nope, die Spire.Doc bietet eine Free-Lizenz an, mit der kann man dann nur eine Bestimmte Anzahl (wie viele müsst ich nachgucken, glaube aber es sind 3) an Seiten bearbeiten. Aber eben vollständen kostenfrei


    Ich habe mir die "Berechnungen" jetzt nicht angesehen. Wir lassen das mal drinnen werden es aber nicht verwenden. Soll und jetzt nur zum "Code-Klauen" dienen. Warum? Das soll dann die jeweilige Klasse erledigen.

    etwas in der Art hatte ich vermutet, werd ich dann heute Abend gleich mal entsprechend anpassen, jetzt wo du es erwähnst, klingt das so auch deutlich logischer =)


    Ich bin kein Freund davon Code drinnen zu haben welcher nicht in Verwendung ist. Wozu auch. Brauchst du einen Teil davon packst du ihn rein, oder du erstellst dir ein eigenes NuGet-Package und bindest dann das Paket ein.

    Dann werd ich mich mit Nugets, wohl auch mal auseinander setzen, habe das bisher in den letzten 4-5 Jahren höchstens einmal verwendet und das auch nur um eines zu laden



    Ich sehe das richtig, bis jetzt hast du in XML Files gespeichert. Willst du das so weiterführen oder willst du was anderes? Soll es eine reine Einzelplatzlösung sein?
    Ich denke mir ja das wenn ein User ein Produkt anlegt sollen dann nicht die anderen User auch dieses Produkt zur Verfügung haben?

    Bisher habe ich das ganze beim starten der Application aus einer Xml geladen, und beim schließen der Application wieder als solche gespeichert. Ansich, ja, es greifen mehrere Leute darauf zu, die Xml wird bislang einfach auf einem Shared-Drive gespeichert, und kann somit immer eingelesen werden. Mir ist durchaus bewusst das es nicht die sauberste Lösung ist, aber im Prinzip ausreichend, da der einzige der die eingetragenen Produkte verändert, mein Chef ist, die maximal 3 weiteren Benutzer arbeiten mit den vorhanden Produkten, in der Form wie diese vorliegen. Wenn es bei der Speicherlösung in einer Datei bleibt, sollte ich vermutlich wieder einene art pessimistic-lock einbauen, oder evtl. gibt es ja eine bessere Methode zur speicherung, allerdings sollte dies möglichst vollständig ohne weitere Software funktionieren, also keine Datenbank oder dergleichen, daher vermute ich zumindest das eine einzelne Datei hierbei das sinnvollste wäre ?
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    Nofear23m schrieb:

    Genau, erst dann werde ich erst weitermachen, sonst artet das hier aus mit den Dateianhängen. Wir müssen den Server ja nicht zumüllen.

    Aber das wird er schon hinbekommen. Ansonsten kann ich zur not das PRojekt in meinem Account erstellen und für dann alle User hinzu.
    @asusdk wäre dir das lieber=


    Du bist dieser Anmerkung jetzt schon ein paar mal ausgewichen.
    Es lohnt sich kaum, jetzt schon anzufangen, am besten du legst den Code erstmal auf einer Codeverwaltung ab (oder lässt es Nofear23m machen)

    Dann können wir nämlich alle immer den aktuellen Stand sehen.

    Viele Grüße
    Florian
    @flori2212
    Du bist dieser Anmerkung jetzt schon ein paar mal ausgewichen.
    Es lohnt sich kaum, jetzt schon anzufangen, am besten du legst den Code erstmal auf einer Codeverwaltung ab (oder lässt es Nofear23m machen)


    Nope, du hast geantwortet, während ich die letzte Antwort verfasst habe, dadurch habe ich diese nicht mitbekommen, in Post 4 oben habe ich bereits geschrieben das ich mir direkt heute abend wenn ich zuhause bin, GitHub ansehen möchte, da der allgemeine Konsens ist, das eine Codeverwaltung sinnvoll ist, werde ich dies selbstredend auch tun, sorry falsch das bisher falsch rüberkam.

    In dem Product Model hast du (meiner Meinung nach) fälschlicher Weise schon RaisePropertyChanged() gemacht. Das kommt erst im ViewModel

    Ok, gut zu wissen, da fängt wohl bereits an, was ja der Grund für dieses Projekt ist, bisher weiss ich leider nicht was in ein ViewModel gehört, bzw. was nicht, das will ich hier ja lernen :P

    @Nofear23m
    Aber das wird er schon hinbekommen. Ansonsten kann ich zur not das
    PRojekt in meinem Account erstellen und für dann alle User hinzu.@asusdk wäre dir das lieber=


    Ich vermute mal das man das so machen könnte, aber um erstmal zu lernen wie das mit GitHub funktioniert, vermute ich mal das es sinnvoller wäre wenn ich dies selbst versuche oder ?


    LG
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    asusdk schrieb:

    glaube aber es sind 3) an Seiten bearbeiten

    Richtig. Mit den Office DLLs kannst du unendlich viele Seiten PDF erzeugen. Aber egal. Lassen wir das so drinnen, dann musste da mal nix neu lernen. Wir werden es dann nur über NuGet einbinden und nicht über die DLLs.

    asusdk schrieb:

    Dann werd ich mich mit Nugets, wohl auch mal auseinander setzen,

    Musste noch nicht. Derweilen benötigen wir diese Extensions für dieses Projekt ja nicht.

    asusdk schrieb:

    da der einzige der die eingetragenen Produkte verändert, mein Chef ist, die maximal 3 weiteren Benutzer arbeiten mit den vorhanden Produkten

    Da es keinen User-Login gibt ist dies eine sehr Optimistische annahme. :)
    Ich weis nicht wieviele Produkte es geben wird aber das kann mitunter langsam werden.

    asusdk schrieb:

    vollständig ohne weitere Software funktionieren, also keine Datenbank oder dergleichen, daher vermute ich zumindest das eine einzelne Datei hierbei das sinnvollste wäre ?

    Es gibt auch Datenbanksysteme welche keinen Datenbankserver benötigen. Wenn es für eine Firma ist würde ich ja sowieso etwas wie Azure SQL Database oder Azure CosmosDB empfehlen. Die paar Euros kann sich jede Firma leisten und man hat Datensicherheit. Kleiner Vorteil=von überall Zugriff - Kleiner Nachteil=Internetverbindung wird benötigt

    Aber wir können gerne derweilen bei XML bleiben - du musst wissen wie "sicher" deine Anwendung sein soll und wie der Zugriff erfolgen soll/darf/muss.

    Bez. Quellcodeverwaltung. Wenn du willst erstelle ich am Server mal ein Projekt. Passt das für dich?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    asusdk schrieb:

    vermute ich mal das es sinnvoller wäre wenn ich dies selbst versuche oder ?

    Sinnvoller ja. Ich persönlich würde dir aber fast sogar zu AzurDevOps Raten. Ich durfte dich bereits ein wenig kennenlernen - und Git ist nicht leicht zu verstehen (muss ich selbst zugeben) - hier wirst du die Flinte ins Korn werfen.
    So wie @flori2212 schon gesagt hat wäre AzureDevOps einfacher. Auch hier kann man OpenSource Projekte erstellen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Sinnvoller ja. Ich persönlich würde dir aber fast sogar zu AzurDevOps Raten

    Ok, ja das ist mir bislang absolut gar kein Begriff, aber wenn du dies empfiehlst, dann machen wir das wohl am besten so, dann wäre ich dir sehr dankbar, wenn du das Projekt schon mal aufmachst. Und mir evtl. kurz erklären könntest wie man damit arbeitet, ich habe halt nur das normale VS2017 falls das relevant ist ?

    Da es keinen User-Login gibt ist dies eine sehr Optimistische annahme. Ich weis nicht wieviele Produkte es geben wird aber das kann mitunter langsam werden.

    im Anhang siehste bereits die vollständige Produktliste, mehr sind es nicht.

    Es gibt auch Datenbanksysteme welche keinen Datenbankserver benötigen.
    Wenn es für eine Firma ist würde ich ja sowieso etwas wie Azure SQL Database oder Azure CosmosDBempfehlen. Die paar Euros kann sich jede Firma leisten und man hat Datensicherheit. Kleiner Vorteil=von überall Zugriff - Kleiner Nachteil=Internetverbindung wird benötigt


    Datensicherheit spielt hier eigentlich gar keine Rolle, es handelt sich hierbei nicht um kritische Daten. Auch wenn es für eine Firma ist, sind keinerlei zusätzliche Kosten gewünscht seitens der GF, daher wäre das weitere Speichern in einem einfachen File wohl am besten.
    Bilder
    • Capture.JPG

      70,78 kB, 732×583, 35 mal angesehen
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    asusdk schrieb:

    vollständige Produktliste

    Haha, nich viel. OK, das geht klar. 8|

    Gut, ich werde ein Projekt erstellen und dich als Member hinzufügen. Mir ist es egal. GitHub oder DevOps. Ich mach das was dir lieber ist.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nofear23m schrieb:

    Gut, ich werde ein Projekt erstellen und dich als Member hinzufügen. Mir ist es egal. GitHub oder DevOps. Ich mach das was dir lieber ist.

    Da er mit beiden noch nicht gearbeitet hat, ist es ihm wahrscheinlich egal.
    Tatsächlich würde ich aber GitHub vorschlagen, da in diesem Forum wahrscheinlich mehr Menschen einen GitHub Account haben und so auch mitmachen können.

    Viele Grüße
    Gut, ich werde ein Projekt erstellen und dich als Member hinzufügen. Mir ist es egal. GitHub oder DevOps. Ich mach das was dir lieber ist.

    Da ich mit beidem noch nicht gearbeitet habe und mir somit jede Grundlage fehlt zu entscheiden was nun besser/sinnvoller ist, würde ich sagen das es sinnvoller wäre wenn du hier entscheidest.
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Hallo Leute.

    Also Projekt-Repository erstellt.
    @All Wenn ihr mir eure Git-Account Mailadressen schickt füge ich euch gerne hinzu.
    @asusdk Bei Fragen zu Git und wie man einen PullRequest mach und sowas bitte in einem Seperaten Thread im allgemeinen Bereich. Danke.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Achso, sorry. Kommando zurück.

    Das ist ja jetzt GitHub. Da könnt ihr ja selbst Forken. War jetzt bei DevOps. ;)

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @asusdk
    So, @flori2212 hat dir ja ne super Anleitung bzw. Git erstellt. Nun solltest du soweit klar kommen.

    Gehen wir weiter. Man fängt immer beim Model an. Wie würdest du nun das Model erstellen?
    Modelklassen wollten immer POCO Klassen sein. (PlainOldClassObject)

    Diese sind "dumm" und spiegeln im Grunde nur deine Daten wider. Das bedeutet, alles was du speichern willst.
    Was aber auch du Daten gehört ist die Tatsache das die Daten mit gewissen Regeln gespeichert werden sollten. Also z.b. die richtigen Datentypen und ggf. dürfen gewisse Zeichenfolgen eine maximales länge nicht überschreiten oder in gewissen Interger Feldern dürfen keine Negativen Werte vorhanden sein. Also wirklich nur das was die Rohdaten betrifft.

    Wenn ich mir dein "altes" Projekt so ansehe denke ich du benötigst drei Klassen welche alle als Serializable gekennzeichnet werden müssen.
    Prudukt, Result (wobei ich den Namen schlecht finde wäre hier "Offer" für Angebot nicht besser?) und Settings. Ist das richtig?

    Zeig uns mal wie du dir die drei Klassen vorstellst. Zur Not hier als Code, aber nun müsstest du einen PullRequest auch schon machen können.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##