在windows phone中,我有一个LongListMultiSelector控件,它由用户进行多项选择,并将选择保存在一个文件中。
然后,如果用户试图从文件中加载他的选择,则加载正常,并使用IsSelected属性再次选择所选的项。
我的问题是,为什么只选中可见项,而未选中视图外的其他选定项,如何使它们也被选中?
发布于 2014-01-03 11:19:04
LonglistMultiSelector不会在启动时加载所有项,而是加载所需的项(请参阅ItemRealized和ItemUnrealized事件)。由于您要选择的某些项目未分配给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;
}https://stackoverflow.com/questions/20602946
复制相似问题