0

我正在制作一个图书应用程序。我有new releases列表和favorites全景列表。new releases现在,在列表中的每条记录旁边都有一个add to favorite按钮,单击该按钮可将该特定书籍添加到favorite列表中,然后删除该特定add to favourite按钮。`

我的favorite列表在每条记录旁边都有删除按钮。

问题。

现在,当单击列表中的“删除我”按钮(任何特定记录的)时,favourite推荐的策略是再次add to favourite实时显示新版本列表中已删除的按钮。

一种方法是再次加载列表,我认为这不是正确的举动,因为它是应用程序的第一页。

4

2 回答 2

1

对于new releasesandfavorites列表中的每个项目,分配一个唯一的 id。因此,每个项目在加载到列表时都有一个唯一的 id,无论是它new releases还是favorites.

当你点击时add to favorites,一切都如你所说。现在,当您点击时remove from favorites,检索该ListItem使用Listbox.SelectedItem属性的唯一 ID(我认为您ObservableCollection是该类的集合Book.cs

    private void favoritesListTap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        Book data = (sender as ListBox).SelectedItem as Book;
        int selectedid = data.unique_id;

        //Now find that item in the `new releases` list which has the same unique_id as the one we just retrived

         foreach( Book bk in newleases.Items)
         {
              if( bk.unique_id == selectedid)
              {
                 bk.SetFavoriteIcon = "addtofav.png"; 
                 break;
              }
         }
     }

使用 Book.cs 中的 SetFavoriteIcon 设置您的图标和样式与INotifyPropertyChanged事件。这将更改您希望add to favorite返回按钮的特定列表项。

于 2013-11-11T11:47:38.630 回答
0

对两个列表中的项目使用相同的 ItemViewModel。在其上添加 IsFavorite bool 可通知属性,并在项目被收藏或取消收藏时切换它。然后在新发布列表中仅当 IsFavorite 为 false 时才显示 AddToFavorites 按钮,而对收藏列表执行相反的操作。还在 ItemViewModel 中添加两个名为 AddToFavoritesCommand 和 RemoveFromFavoritesCommand 的命令,它们将从 newreleases/favorites 列表中删除/添加当前项目并分别切换 IsFavorite 标志。

于 2013-11-11T08:03:10.293 回答