나는 나의 창 전화 7 신청에있는 addFavorites이라고 지명 된 페이지가있다. It 페이지 하단에 체크 박스와 버튼이있는 사람들의 목록을 표시합니다.고립 된 저장 행동 이상한
체크 박스의 체크 된 이벤트와 체크되지 않은 이벤트에서 나는 해당 오브젝트를리스트에 추가하고 제거합니다.
추가 버튼 클릭시 채워진 목록을 격리 된 저장소에 추가합니다. 내가 체크 박스를 선택하여 응용 프로그램을로드하고 버튼을 다시 누르면
이 잘 행동 :
다음은 내 코드
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 개의 항목을 나타내는 백 버튼을 누르지 않고 격리 된 저장소에 선택한 항목이 추가되었습니다.
그리고 확인란을 선택하고 뒤로 버튼을 누를 때마다 항목이 추가 Butto를 누르지 않고 격리 된 저장소에 추가됩니다.
나는 무슨 일이 일어나고 있는지 알아 내려고했지만 알아 내지 못했습니다.
의 긴급
감사합니다 도움 간주하십시오
편집 내가 뭘 더 찾으 확인란을 선택하고 그러한 문제가없는 선택을 취소보다 경우에, 그래서 난 뒤로 버튼 후 생각 모든 것이 고립 된 저장 장치로 보내지는 중입니다.
을; 내 App.cs하지만 아무 쓸모가 – Mohit
이해가 안되는 한가지 더 y는 처음에는 잘 작동합니다. – Mohit
기본적으로'addFav_Click_1'은 불필요 해집니다. 'selectPlayers'를 변경할 때마다,'ApplicationSettings' 키의 값도 변경됩니다. 또한,'App.cs'는'App.xaml.cs'를 의미하거나 다른 App.cs 파일의 위 코드입니다. – abhinav