views:

83

answers:

1

I've got a listbox (listStorageLocations) - thats bound to a BindingSource called listStorageLocationsBindingSource. This BindingSource is bound to a collection of StringDictionary items in my Settings.Default.StorageLocations. The listbox's datasource is then set to the bindingsource. I cannot for the life of me get anything to display in this blasted listbox (unless I specifically add test items).

Here's some code:

Form Initialization:

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

Button logic, to add a new storage location:

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);
}

I've tried holding my arm up at a 78 degree angle, jumping through 7 flaming hoops, and standing on my head to no avail. Is their some stupid detail I am missing?

Oh also I'm calling Settings.Default.Save() right here just to get some intial values in my StringDictionary - but of course - that doesn't work either because when I restart app - there are no items.

A: 

Well I figured it out, the StringDictionary class isnt Serializable so my settings aren't saved with Settings.Default.Save() - so I'm headed in the wrong direction with this. Going to store data differently.

Jack