LongListMultiSelector添加到所选项目添加2项目代替

问题描述:

我想要做一些代码,将做一个“全选”功能。为了实现这一点,在代码后面,我试图手动将所有列表对象添加到LongListMultiSelector的SelectedItems。LongListMultiSelector添加到所选项目添加2项目代替

但问题是,当我这样做时,列表中增加了两个项目,它们的信息完全相同。我已经尝试使用SelectedItems.Add(...),SelectedItems.Insert(...)无济于事。

我也尝试使用SelectedItems.Remove(...),SelectedItems.RemoveAt(...)从列表中立即删除其中一个项目,这将实际删除这两个条目,无论我实际删除哪个条目。

最后,我试着将其中一个条目改为NULL。这实际上删除了列表中的一个条目,但随后将其余的一个更改为空对象本身。 我是否以正确的方式执行SelectAll功能?我想实现的目标有更好的选择吗?是否可以继续我正在做的事情并解决这个重复问题?

的解决方案是 “假” 的用户选择这里指出:http://www.jonathanantoine.com/2013/04/18/wp-toolkit-adding-a-item-in-the-selecteditems-collection-of-a-longlistmultiselector-actually-adds-2/

foreach (var item in LongListMultiSelector.ItemsSource) 
{ 
    var container = LongListMultiSelector.ContainerFromItem(item) 
          as LongListMultiSelectorItem; 
    if (container != null) container.IsSelected = true; 
} 

这为我工作,而无需添加重复:

private void OnSelectAllClick(object sender, EventArgs e) 
    { 
     LongListMultiSelectorName.SelectedItems.Clear(); 
     foreach (var item in LongListMultiSelectorName.ItemsSource) 
     { 
      LongListMultiSelectorName.SelectedItems.Add(item); 
     } 
    }