【问题标题】:Windows phone 8 LongListMultiSelector dynamically select itemsWindows phone 8 LongListMultiSelector 动态选择项目
【发布时间】:2014-03-04 20:07:41
【问题描述】:

如何在 Windows Phone 工具包的 LongListMultiSelector 中动态(在代码中)选择几个项目。 SelectedItems 属性没有设置器。

我的代码:

 private async void GetGenres()
    {
        var genres = await App.MusClient.GetGenresAsync();

        var preferencedGenresIdsList = App.GetFromIsoStorage<List<string>>(App.GENRES_IDS_KEY_STRING);

        GenresListBox.ItemsSource = genres;




        foreach (var item in GenresListBox.ItemsSource)
        {
            if (preferencedGenresIdsList.Contains(((Genre)item).Id))
            {
                LongListMultiSelectorItem container = GenresListBox.ContainerFromItem(item) as LongListMultiSelectorItem;
                if (container != null)
                {
                    container.IsSelected = true;
                }
            }
        }




        if (genres.Result == null || genres.Count == 0)
        {
            MessageBox.Show("No results available");
        }

    }

【问题讨论】:

    标签: windows-phone-8 longlistselector windows-phone-toolkit


    【解决方案1】:

    我找到了解决办法

    private async void GetGenres()
        {
            var genres = await App.MusClient.GetGenresAsync();
    
            var preferencedGenresIdsList = App.GetFromIsoStorage<List<string>>(App.GENRES_IDS_KEY_STRING);
    
            GenresListBox.ItemsSource = genres;
    
    
    
    
            foreach (var item in GenresListBox.ItemsSource)
            {
                if (preferencedGenresIdsList.Contains(((Genre)item).Id))
                {
                    GenresListBox.ScrollTo(item);
                    LongListMultiSelectorItem container = GenresListBox.ContainerFromItem(item) as LongListMultiSelectorItem;
                    if (container != null)
                    {
                        container.IsSelected = true;
                    }
                }
            }
            GenresListBox.ScrollTo(GenresListBox.ItemsSource[0]);
    
    
    
            if (genres.Result == null || genres.Count == 0)
            {
                MessageBox.Show("No results available");
            }
    
        }
    

    它不起作用的原因是尚未在 UI 上创建项目。 GenresListBox.ScrollTo(item); - 强制 UI 创建元素!

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      相关资源
      最近更新 更多