У меня есть страница с именем addFoving в моем приложении Windows Phone 7.Он отображает список людей с флажком и кнопкой внизу страницы.
На отмеченных и непроверенных событиях флажка я просто добавляю и удаляю соответствующий объект в список.
При нажатии кнопки «Добавить» я добавляю заполненный список в изолированное хранилище.
Ниже приведен мой код
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));
}
}
Проблема:
Когда я загружал приложение, я установил флажок и нажимал кнопку «Назад», он работал нормально.
Затем я выбрал элемент и нажал кнопку «Добавить», и данные добавляются в изолированное хранилище по мере необходимости.
После добавления еще одного элемента в изолированное хранилище я установил флажок и нажал кнопку «Назад», на этот раз выбранный элемент был добавлен в изолированное хранилище без нажатия кнопки «Назад», что означает, что теперь, если в изолированном хранилище 2 элемента.
и каждый раз, когда я просто устанавливаю флажок и нажимаю кнопку «Назад», элемент добавляется в изолированное хранилище без нажатия кнопки «Добавить».
Я пытался выяснить, что происходит, но не смог выяснить.
, пожалуйста, помогите срочно
Спасибо и всего наилучшего
РЕДАКТИРОВАТЬ Что я нахожу большеЕсли флажок установлен и флажок снят, такой проблемы нет, поэтому я думаю, что после нажатия кнопки «Назад» все отправляется в изолированное хранилище.