Car*_*s P 9 c# xaml windows-phone windows-phone-8
我正在使用新的Windows Phone 8 LongListSelector控件,它将其ItemsControl分配给a List<Group<object>>:
    List<Group<PlacePoint>> searchResults; 
    async void doSearch()
    {
        this.searchResults = await SearchHelper.Instance.getSearchResults(txtSearchTerm.Text);
        longList.ItemsSource = this.searchResults;
    }
不幸的是,我第二次搜索时,重新设置.ItemsSource属性没有任何效果,控件只显示旧的List.
如何更改绑定?
似乎重新分配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);
        }
    }