如何确定WinJS.UI.Listview中触发了SelectionChanged事件的项目

如何确定WinJS.UI.Listview中触发了SelectionChanged事件的项目,listview,microsoft-metro,winjs,Listview,Microsoft Metro,Winjs,情况如下: 我允许用户从列表视图中选择项目并将其添加为收藏夹。 当列表第一次加载时,我预选了以前添加为收藏夹的项目。 要保存收藏夹,我只需获取选择列表并覆盖收藏夹,即如果任何取消选择的内容都将自动处理 但是: 在listview的顶部有一个搜索框,它刷新相同的listview以显示每个新搜索关键字的搜索结果。因此,用户可以搜索和选择/取消选择项目。这种情况不允许我简单地获取选择列表并覆盖收藏夹 我需要明确知道用户点击了哪个项目(注意,我的listview的tapBehavior设置为toggle

情况如下:

我允许用户从列表视图中选择项目并将其添加为收藏夹。 当列表第一次加载时,我预选了以前添加为收藏夹的项目。 要保存收藏夹,我只需获取选择列表并覆盖收藏夹,即如果任何取消选择的内容都将自动处理

但是:

在listview的顶部有一个搜索框,它刷新相同的listview以显示每个新搜索关键字的搜索结果。因此,用户可以搜索和选择/取消选择项目。这种情况不允许我简单地获取选择列表并覆盖收藏夹

我需要明确知道用户点击了哪个项目(注意,我的listview的tapBehavior设置为toggleSelect)来选择/取消选择它,并从收藏夹列表中手动添加/删除它


如何获取触发listview的onselectionchanged事件的项目的信息以及该项目的当前状态(即已选择/取消选择)。您可以为SelectionChanged事件添加处理程序,并将event.detail.NewsSelection与listview控件的当前选择进行比较。缺少/新项目将是必需的元素

我不确定这个解决方案是否是最佳的,但至少它是有效的