#

 

Der Typ List<Type> kann nicht direkt in den Settings gespeichert werden, da ein Liste nicht serialisierbar ist.

Deshalb verwende ich hier eine Liste und speichere diese in einem Settings-Container.

In Settings-Containern können Wert in Gruppen zusammengefasst werden.

 

Dieses Beispiel zeigt, wie man eine Liste in Settings speichern kann. Allerdings muss die Sortierung nachgeführt werden.

 

private void settings_Set_List()

        {

            //--------< settings_Set_List() >--------

            List<String> myList = new List<String>();

 

            //< fill >

            myList.Add("D");

            myList.Add("C");

            myList.Add("B");

            myList.Add("A");

            //</ fill >

 

            //< check exist >

            if (myList.Contains("A")==false )

            { myList.Add("A"); }

 

            //if (myList.Contains("B") == true) //test double entry

            //{ myList.Add("B"); }

            //< check exist >

 

            //< sort order >

            myList.Sort();

            //</ sort order >

 

            //< Create-Check Container >

            //*check if container exists, if not then create container, else clear values

            if(ApplicationData.Current.LocalSettings.Containers.ContainsKey("List_Entries")==false )

            {

                ApplicationData.Current.LocalSettings.CreateContainer("List_Entries", ApplicationDataCreateDisposition.Always);

            }

            else

            {

                ApplicationData.Current.LocalSettings.Containers["List_Entries"].Values.Clear();

            }

            //</ Create-Check Container >

 

            //-< to Settings >-

            for (int i=0;i<myList.Count;i++)

            {

                ApplicationData.Current.LocalSettings.Containers["List_Entries"].Values[i.ToString()] = myList[i];

            }

            //-</ to Settings >-

 

 

 

            //-< From Settings >-

            List<String> list_Readback = new List<string>();   

            for (int i = 0; i < ApplicationData.Current.LocalSettings.Containers["List_Entries"].Values.Count; i++)

            {

                list_Readback.Add(ApplicationData.Current.LocalSettings.Containers["List_Entries"].Values.ElementAt(i).Value.ToString());

            }

            //-</ From Settings >-

 

            //--------</ settings_Set_List() >--------

        }

 

 

Beim Speichern

Man sieht: die Liste List<String> ist mit 4 Werten gefüllt. Diese werden in ein Settings-Container eingetragen, wobei die Settings als Key-Paare gespeichert werden.

Nach dem Zurücklesen muss das List-Array mit List.Sort() nochmals sortiert werden.

 

Folgender Vorgang kann nicht ausgeführt werden in UWP:

Liste List direkt in die Settings schreiben als Object.

////--< In Settings >--

//Windows.Storage.ApplicationData.Current.LocalSettings.Values["List_Used_Folders"] = list_Test;

 

////< load >

//List<String> list_from_Settings = Windows.Storage.ApplicationData.Current.LocalSettings.Values["List_Used_Folders"] as List<String>;

////</ load >

//--</ ISettings >--

 

 

 

Betrifft: UWP, List, Dictionary

 

 

Mobile

.