список, связанный с Specialized.StringDictionary не обновляется - PullRequest
0 голосов
/ 17 мая 2010

У меня есть список (listStorageLocations) - он привязан к BindingSource с именем listStorageLocationsBindingSource. Этот BindingSource связан с коллекцией элементов StringDictionary в моем Settings.Default.StorageLocations. Источник данных списка затем устанавливается на источник привязки. Я не могу на протяжении всей жизни получить что-либо для отображения в этом проклятом списке (если я специально не добавлю тестовые задания).

Вот код:

Инициализация формы:

listStorageLocations.DisplayMember = "Key";
listStorageLocations.ValueMember = "Value";
listStorageLocationsBindingSource.DataSource = Settings.Default.StorageLocations;
listStorageLocations.DataSource = listStorageLocationsBindingSource;
if (Settings.Default.StorageLocations == null)
    Settings.Default.StorageLocations = new StringDictionary();

Кнопка логики, чтобы добавить новое место хранения:

private void btnAddStorageLocation_Click(object sender, EventArgs e)
{
    if (!txtStorageLocation.Text.Equals("") && !(txtStorageLocationName.Text.Equals("") &&
          !(StorageLocationsContainsPath(txtStorageLocation.Text)) &&
          !(StorageLocationsContainsName(txtStorageLocationName.Text))))
    {
        Settings.Default.StorageLocations.Add(txtStorageLocationName.Text, txtStorageLocation.Text);
    }
    Settings.Default.Save();

    listStorageLocationsBindingSource.ResetBindings(false);
}

Я пытался поднять руку под углом 78 градусов, прыгать через 7 пылающих обручей и безрезультатно стоять на голове. Это какая-то глупая деталь, по которой я скучаю?

Да, я также вызываю Settings.Default.Save () прямо здесь, просто чтобы получить некоторые начальные значения в моем StringDictionary - но, конечно, - это тоже не работает, потому что, когда я перезапускаю приложение - нет элементов.

1 Ответ

0 голосов
/ 18 мая 2010

Ну, я понял, класс StringDictionary не Serializable, поэтому мои настройки не сохраняются с помощью Settings.Default.Save () - так что я иду в неправильном направлении с этим Будем хранить данные по-другому.

...