Collection<CustomClass> in Settings der Anwendung speichern

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Schmittmuthelm.

    Collection<CustomClass> in Settings der Anwendung speichern

    Ich habe eine Anwendung in der Ich eine Liste von Personen anzeigen möchte und zusätzlich ein paar weitere Informationen zu dieser Person.
    Als Anzeige reicht mir ein Datagrid dessen ItemsSource an die Liste von Personen gebunden ist. Diese Personenliste soll natürlich gespeichert werden, und das am besten direkt in der Anwendung selbst, wollte keine xml, csv o.Ä. erzeugen.
    Also habe ich in den Settings der Anwendung zwei Items angelegt (Players und PapItems). In der Settings.settings Datei habe ich dann den Typ entsprechend der Klassen angepasst.

    XML-Quellcode

    1. <Settings>
    2. <Setting Name="PapItems" Type="System.Collections.ObjectModel.ObservableCollection&lt;PapItem&gt;" Scope="User">
    3. <Value Profile="(Default)" />
    4. </Setting>
    5. <Setting Name="Players" Type="System.Collections.ObjectModel.ObservableCollection&lt;Player&gt;" Scope="User">
    6. <Value Profile="(Default)" />
    7. </Setting>
    8. </Settings>


    Beim öffnen des MainWindows lade ich die Inhalte der Settings, beim WindowClosing speichere ich sie.
    Exemplarisch mache ich das über einen Button der in beide Listen was einfügt.

    Jetzt zum Problem..das Speichern scheint nicht zu funktionieren, obwohl beim WindowClosing-Event die Inhalte der Settings passen, sind sie beim Load-Event leer.

    Online habe ich zum dem Thema oft das Stichwort [Serializable] gefunden, aber konnte den Fehler noch nicht beheben.
    Im Anhang hab ich mal ein Beispiel.
    Dateien