[英]windows phone 8 hide and show buttons in the lists in paranoma
我正在制作图书应用。 我在全景图中有new releases
清单和favorites
清单。 现在,在new releases
列表中的每条记录旁边,都有一个“ add to favorite
按钮,该按钮可以在单击该特定书本时将其添加到favorite
列表中,然后add to favourite
该特定的“ add to favourite
按钮。
我favorite
列表的每条记录旁边都有一个“删除”按钮。
问题。
现在,当在“ favourite
列表中单击“删除我”按钮(任何特定记录的按钮)时,建议的策略是再次在被实时删除的newreleases列表中再次显示“ add to favourite
按钮。
一种方法是再次加载列表,我认为这是正确的举动,因为它是该应用程序的第一页。
在new releases
和favorites
列表中的每个项目上分配一个唯一的ID,因此每个项目在列表中加载时都有一个唯一的ID,无论是new releases
还是favorites
。
当您点击add to favorites
,一切都按您所说的进行。 现在,当您点击“ remove from favorites
”时,使用Listbox.SelectedItem
属性检索该ListItem
的唯一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
按钮的特定列表项。
对两个列表中的项目使用相同的ItemViewModel。 在其上添加IsFavorite bool可通知属性,并在收藏或不收藏Item时切换它。 然后,在新版本列表中,仅当IsFavorite为false时显示AddToFavorites按钮,然后对“收藏夹”列表执行相反的操作。 还要在ItemViewModel中添加两个名为AddToFavoritesCommand和RemoveFromFavoritesCommand的命令,这两个命令将从newreleases / favorites列表中删除/添加当前项,并分别切换IsFavorite标志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.