Я хочу сохранить элементы списка не в текстовом файле, а сохранить их так, чтобы при добавлении элемента в список и закрытии приложения после открытия приложения элемент, добавленный в список, все еще присутствовал.
Вариант использования:
- Пользователь открывает приложение.
- Пользователь добавляет элемент под названием «Элемент 1» в список с помощью кнопки.
- Пользователь закрывает приложение.
- Пользователь снова открывает приложение и видит, что «Элемент 1» все еще находится в списке, и добавленный элемент не был потерян при закрытии приложения.
Я видел, как люди преуспели в том, чтобы сделать что-то подобное с данными текстового поля (это видео, например: сохранение пользовательских настроек ), но у меня возникли проблемы при работе с данными списка.
Вот как я пытался сделать это сам, основываясь на связанном видео, начиная с кнопки, которую пользователь использует для добавления элемента в список:
private void AddTeamButton_Click(object sender, EventArgs e)
{
// add the item to the listbox
listBox1.Items.Add("Example string);
// add the item to the ListBoxStuff settings
Settings.Default["ListBoxStuff"] = Settings.Default["ListBoxStuff"] + "|" + "Example string";
}
Затем при загрузке формы:
private void Form1_Load(object sender, EventArgs e) // needs to stay
{
// Items from the ListBoxStuff setting is saved as a string - this may be the issue, but am unsure, this gets the values of the settings?
string listboxItems = Settings.Default["ListBoxStuff"].ToString();
// If there are values other than null or empty.
if (listboxItems != null || !listboxItems.Equals(""))
{
string[] separators = { "|" };
// Put the items in a string array, splitting them at the | which means the next item in the string
string[] itemsToAdd = listboxItems.Split(separators, StringSplitOptions.RemoveEmptyEntries);
// Loop through the array
foreach (string i in itemsToAdd)
{
// Add each item to the list box
listBox1.Items.Add(i);
}
}
}
Я думал, что каждый раз, когда пользователь добавляет элемент в список, в строке listboxstuff добавляется элемент с символом | Между тем, при загрузке мы получаем эту строку, разделяем ее на каждый | и добавляем каждый элемент во вновь созданном массиве в список, и если он пуст, ничего не происходит.
Но в результате элемент, добавленный в список, отсутствует при повторном открытии приложения после добавления элемента.
Кто-нибудь знает, как это можно сделать?