【发布时间】:2012-08-19 17:55:10
【问题描述】:
我有一个 CollectionViewSource,它绑定到可观察集合的子集,以显示主页上的前 n 篇文章。
<CollectionViewSource
x:Name="groupedItemsViewSource"
Source="{Binding Groups}"
IsSourceGrouped="true"
ItemsPath="TopItems" />
在我的代码中,我执行以下操作:
protected async override void LoadState(Object navigationParameter, ...)
{
var feedDataSource = (FeedDataSource)navigationParameter;
this.DefaultViewModel["Groups"] = feedDataSource.Feeds;
}
我的 FeedDataSource 包含一个 ObservableCollection<FeedCategory> Feeds,其中包含一个 ObservableCollection<FeedItem> Items 和 TopItems :
public ObservableCollection<FeedItem> TopItems
{
get { return new ObservableCollection<FeedItem>(this.Items.Take(5)); }
}
现在 - 我添加了一个刷新方法,该方法将更多 FeedItems 添加到 Items 集合中,但是当我刷新时,它对我的主页上使用 groupedItemsViewSource 作为其 ItemsSource 属性的网格视图没有影响。
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
如果我离开页面,然后再次返回(因此页面被重建),新项目就在那里。为什么我的 GridView 没有在这些更改发生时显示它们?我认为通过绑定集合和网格视图,它们应该反映这些变化?我已经尝试将它们更改为两个一个,一个方式 - 但它没有任何区别。
谁能解释为什么这不起作用?
【问题讨论】:
标签: c# xaml windows-8 windows-runtime