WP8 LongListSelector - 重新分配的ItemsSource没有影响(WP8 L

2019-08-03 09:02发布

我使用的是全新的Windows Phone 8 LongListSelector控制,它有ItemsControl分配到一个List<Group<object>>像这样:

    List<Group<PlacePoint>> searchResults; 

    async void doSearch()
    {
        this.searchResults = await SearchHelper.Instance.getSearchResults(txtSearchTerm.Text);
        longList.ItemsSource = this.searchResults;
    }

不幸的是,我搜索了第二次,重新设置.ItemsSource属性没有任何效果和控制只显示旧列表。

我怎样才能更改绑定?

Answer 1:

这似乎是重新分配longList.ItemsSource没有任何影响,这是否是一个错误或设计,我不能说。

然而,一个简单的解决方法就是使用一个ObservableCollection>代替,然后用此集合,而不是重新分配的ItemsSource工作。

示例代码:

    ObservableCollection<Group<PlacePoint>> searchResults = new ObservableCollection<Group<PlacePoint>>();


    public SearchPage()
    {
        InitializeComponent();

        longList.ItemsSource = this.searchResults;
    }

    async void doSearch()
    {
        List<Group<PlacePoint>> tempResults = await SearchHelper.Instance.getSearchResults(txtSearchTerm.Text);

        // Clear existing collection and re-add new results
        this.searchResults.Clear();
        foreach (Group<PlacePoint> grp in tempResults )
        {
            this.searchResults.Add(grp);
        }
    }


Answer 2:

有时,它帮助后立即设置的ItemsSource为null,然后给你的结果。



Answer 3:

您需要定义使用异步的等待才能正常工作的doSearch()方法。

尝试宣告你这样的方法:

private async Task doSearch() {

}


文章来源: WP8 LongListSelector - re-assigning ItemsSource has no effect