Q: Isolated Storage Behaving weird I have a page named addFavorites in my window phone 7 application.
It Displays a list of of people with a check box and a button at the bottom of the page.
On the checked and unchecked events of the check box i am just adding and removing the corresponding object to List.
On the click of Add Button i am adding the populated list to isolated storage.
Below is my code
public partial class AddFavourites : PhoneApplicationPage
{
    public int checkedPlayers;
    public List<MarathonPlayer> selectedPlayers = null;
    public AddFavourites()
    {
        InitializeComponent();
        if (IsolatedStorageSettings.ApplicationSettings.Contains("FavouritePlayers"))
        {
            selectedPlayers = (List<MarathonPlayer>)(IsolatedStorageSettings.ApplicationSettings["FavouritePlayers"]);
        }
        else
        {
            selectedPlayers = new List<MarathonPlayer>();
        }
        listOfPlayers.ItemsSource = ManageFavourites.listSearch;

    }
    private void checkBox_Checked(object sender, RoutedEventArgs e)
    {
        MarathonPlayer mp = (sender as CheckBox).DataContext as MarathonPlayer;

        if (!IsolatedStorageSettings.ApplicationSettings.Contains("FavouritePlayers"))
        {
            selectedPlayers.Add(mp);

        }
        else
        {
            Boolean PlayerIsSelected = false;
            selectedPlayers = null;
            selectedPlayers = (List<MarathonPlayer>)(IsolatedStorageSettings.ApplicationSettings["FavouritePlayers"]);
            for (int j = 0; j < selectedPlayers.Count(); j++)
            {
                PlayerIsSelected = false;
                if (selectedPlayers[j].playerBibNum.Equals(mp.playerBibNum))
                {
                    CheckBox cb = sender as CheckBox;
                    cb.IsChecked = false;
                    PlayerIsSelected = false;
                    MessageBox.Show("The runner is already added to your favourites");
                    break;
                }
                else if (selectedPlayers.Count == 5)
                {
                    CheckBox cb = sender as CheckBox;
                    cb.IsChecked = false;
                    PlayerIsSelected = false;
                    MessageBox.Show("You cannot add more than 5 runners in your favourites");
                    break;
                }
                PlayerIsSelected = true;
            }
            if (PlayerIsSelected)
            {
                selectedPlayers.Add(mp);

            }
        }

    }

    private void checkBox_Unchecked(object sender, RoutedEventArgs e)
    {
        MarathonPlayer mp = (sender as CheckBox).DataContext as MarathonPlayer;
        selectedPlayers.Remove(mp);

    }

    private void addFav_Click_1(object sender, RoutedEventArgs e)
    {
        if (IsolatedStorageSettings.ApplicationSettings.Contains("FavouritePlayers"))
        {
            IsolatedStorageSettings.ApplicationSettings.Remove("FavouritePlayers");
        }
        IsolatedStorageSettings.ApplicationSettings["FavouritePlayers"] = selectedPlayers;
        IsolatedStorageSettings.ApplicationSettings.Save();
        this.NavigationService.Navigate(new Uri("/Race Events/Favourites/ManageFavourites.xaml", UriKind.Relative));
    }

}

Problem:
When i load the application i checked a check box and press back button it behaved fine.
Then i selected an item and clicked add button and data is added to isolated storage as required.
After adding one item in isolated storage again i selected a checkbox and clicked an back button, this time the selected item was added to isolated storage without pressing the back button that means, now ifind 2 items in isolated storage.
and every time i just check a check box and press the back button the item is added to isolated storage without pressing the add Butto.
I tried to find out whats going but unable to find out.
please help its urgent
Thanks and regards
EDIT
What i find more is if check the check box and than uncheck it there is no such issue, so i think after the back button is pressed is everything is being sent to isolated storage.

A: As @abhinav mentionned, you're using a reference to the list stored in the isolated storage. So any change made to the list is reflected back to the isolated storage. 
You can make a copy of the list instead:
selectedPlayers = new List<MarathonPlayer>((List<MarathonPlayer>)(IsolatedStorageSettings.ApplicationSettings["FavouritePlayers"]));


A:  selectedPlayers = (List<MarathonPlayer>)(IsolatedStorageSettings.ApplicationSettings["FavouritePlayers"]);

selectedPlayers is a reference to the IsolatedStorageSettings Dictionary element. so all changes are made directly to your IsolatedStorageSettings.
Try using
IsolatedStorageSettings mysettings = IsolatedStorageSettings.ApplicationSettings;

Hope this helps.
