new releases
列表和favorites
列表。现在,在new releases
列表中的每个记录旁边都有一个add to favorite
按钮,用于在点击后将该特定图书添加到favorite
列表,然后删除该特定add to favourite
按钮。
我的favorite
列表在每条记录旁边都有删除按钮。
问题。
现在,当点击favourite
列表中的删除我按钮(任意特定记录)时,建议的策略是再次显示新发布列表中的add to favourite
按钮,该按钮是实时删除的。
一种方法是再次加载列表,我认为这不是正确的移动,因为它是应用程序的第一页。
答案 0 :(得分:1)
对于new releases
和favorites
列表中的每个项目,分配一个唯一ID。因此,每个项目在列表上加载时都具有唯一ID,无论是new releases
还是{{1 }}
当你点击favorites
时,一切顺利,就像你说的那样。
现在,当您点按add to favorites
时,使用remove from favorites
属性检索ListItem
的唯一ID(我正在考虑您的Listbox.SelectedItem
是该类{{1}的集合}
ObservableCollection
使用Book.cs中的SetFavoriteIcon通过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;
}
}
}
按钮的一个特定列表项。
答案 1 :(得分:0)
对两个列表中的项目使用相同的ItemViewModel。在其上添加一个IsFavorite bool通知属性,并在项目被收藏或不受欢迎时切换它。然后在新版本列表中仅在IsFavorite为false时显示AddToFavorites按钮,并为收藏夹列表执行相反的操作。另外在名为AddToFavoritesCommand和RemoveFromFavoritesCommand的ItemViewModel中添加两个命令,它们将从newreleases / favorites列表中删除/添加当前项并分别切换IsFavorite标志。