当我按回设备键时如何解决此问题我得到了未处理的异常?
我在windows phone 7应用程序中实现了收藏夹功能。 private void FavoriteClick(对象发送者,EventArgs e) {
var favorites = GetFavorites();
if (favorites.Any(m => m.key == _key))
{
RemoveFavorite();
IsolatedStorageSettings.ApplicationSettings["favorites"] = favorites;
//NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
return;
}
AddFavorite();
}
private void AddFavorite()
{
const string messageBoxText = "Do you wish to add this page to your favorites?";
const string caption = "Add Favorite";
const MessageBoxButton button = MessageBoxButton.OKCancel;
// Display message box
var result = MessageBox.Show(messageBoxText, caption, button);
// Process message box results
switch (result)
{
case MessageBoxResult.OK:
var favorites = GetFavorites();
favorites.Add(_page);
IsolatedStorageSettings.ApplicationSettings["favorites"] = favorites;
break;
}
}
private void RemoveFavorite()
{
const string messageBoxText = "Do you wish add remove this page to your favorites?";
const string caption = "Remove Favorite";
const MessageBoxButton button = MessageBoxButton.OKCancel;
// Display message box
MessageBoxResult result = MessageBox.Show(messageBoxText, caption, button);
// Process message box results
switch (result)
{
case MessageBoxResult.OK:
List<MobiRecord> favorites = GetFavorites();
foreach (MobiRecord m in favorites)
{
if (m.key == _key)
{
favorites.Remove(m);
IsolatedStorageSettings.ApplicationSettings["favorites"] = favorites;
return;
}
}
break;
}
}
问题:
我添加了一些收藏夹后,我去了收藏夹页面,然后选择任何一个添加的收藏夹,然后点击删除收藏夹,我点击后退按钮,应用程序自动关闭(我得到了无瑕疵的例外)。
答案 0 :(得分:1)
这里的问题很可能是你正在改变你正在进行foreach迭代的集合(通过调用最喜欢的删除)。 这将导致您的异常(虽然我需要异常详细信息才能确定)。
正如此代码段从集合中删除:
favorites.RemoveAll(m => m.key == _key);