LongListMultiSelector编程选择

时间:2013-12-16 03:23:38

标签: windows-phone

在Windows手机中,我有一个LongListMultiSelector控件,用户可以进行多项选择,并将选择内容保存在文件中。

然后,如果用户尝试从文件中加载他的选择,则使用IsSelected属性再次选择加载选定的项目。

我的问题是,为什么只检查可见项目,而取消选中视图外的其他所选项目,我该如何检查它们呢?

1 个答案:

答案 0 :(得分:1)

LonglistMultiSelector不会在启动时加载所有项目,而是加载所需的项目(请参阅ItemRealizedItemUnrealized事件)。由于您要选择的某些项目未分配给UI,因此无法选择它们。您可以通过滚动到该项来解决此问题。

我使用以下代码选择LongListMultiSelector中的所有项目。

foreach (ViewModels.ItemViewModel item in longListMultiSelector.ItemsSource)
{
    LongListMultiSelectorItem container = longListMultiSelector.ContainerFromItem(item) as LongListMultiSelectorItem;
    if (container == null)
    {
        // item has't been assigned to UI
        longListMultiSelector.ScrollTo(item);
        container = longListMultiSelector.ContainerFromItem(item) as LongListMultiSelectorItem;
    }

    container.IsSelected = true;
}