2013-12-16 34 views
1

在windows phone中,我有一個LongListMultiSelector控件,該控件具有用戶進行的多選,並將選擇保存在文件中。LongListMultiSelector程序選擇

然後如果用戶試圖從文件加載他的選擇加載罰款和選定的項目再次選擇使用IsSelected屬性。

我的問題是,爲什麼只有可見的項目被選中,而其他選擇的項目在視圖之外是未選中的,我怎樣才能讓他們也被檢查?

回答

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; 
}