メインページに上位n個の記事を表示するために、監視可能なコレクションのサブセットにバインドするCollectionViewSourceがあります。
<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
は、 と TopItems を持つ が含まれていますObservableCollection<FeedItem> Items
:
public ObservableCollection<FeedItem> TopItems
{
get { return new ObservableCollection<FeedItem>(this.Items.Take(5)); }
}
ここで、Items コレクションに FeedItems を追加する更新メソッドを追加しましたが、更新すると、ItemsSource プロパティに groupedItemsViewSource を使用するメイン ページのグリッド ビューには影響しません。
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
ページから離れてから再び戻ると(ページが再構築されるため)、新しいアイテムがそこにあります。これらの変更が発生したときに GridView に表示されないのはなぜですか? コレクションとグリッドビューをバインドすることで、これらの変更を反映する必要があると思いましたか? 私はそれらを2つの1つの方法に変更しようとしましたが、違いはありません.
なぜこれが機能しないのか、誰かが光を当てることができますか?