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