我在我的窗口Phone 7應用程序命名頁addFavorites。 它顯示頁面底部帶有複選框和按鈕的人員列表。獨立存儲出現異常行爲怪異
上的複選框我只是添加和刪除相應的對象列表的檢查,未經檢查的事件。
添加按鈕的點擊我加入列表填充到獨立存儲。
下面是我的代碼
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));
}
}
問題:
當我加載我查了複選框的應用程序,並按下後退按鈕它的表現很好。
然後我選擇的項並點擊添加按鈕,並根據需要的數據被添加到獨立存儲。
在獨立存儲添加一種項目之後再次I的複選框並點擊了返回按鈕,此時所選擇的項目被添加到獨立存儲不按下後退按鈕,這意味着,現在IFIND在獨立存儲2項。
我每次只檢查一個複選框,按後退按鈕的項目被添加到獨立存儲,而無需按添加Butto。
我試圖找出去,但無法找出什麼。
請幫助其緊迫
感謝和問候
編輯 我感到更多的是,如果選中該複選框,比取消它不存在這樣的問題,所以我覺得後退按鈕之後被按下時,一切都被髮送到隔離存儲。
我加入公共靜態IsolatedStorageSettings mysettings = IsolatedStorageSettings.ApplicationSettings;在我的App.cs中,但沒有使用 – Mohit
我不明白的一件事是它工作正常,第一次。 – Mohit
基本上,你的'addFav_Click_1'變得不必要了。因爲每當你改變你的'selectPlayers'時,'ApplicationSettings'鍵的值也會改變。另外,通過'App.cs'你的意思是'App.xaml.cs'或者是上面的代碼在不同的'App.cs'中。 – abhinav