Aggregating Feeds
Using the SyndicationFeed
class, you can read and mash together both Atom and RSS feeds to create
an aggregated list of feed items. The previous example showed how to
consume a single feed and bind it to a ListBox control. The next example shows how to
add and remove feeds from an aggregated list, and mash their feed items
together into a list that you can bind to a list-based
control.
Figure 10-7 shows the Aggregator Silverlight control from the sample
code for this chapter. When the user enters a feed’s URL in the TextBox and clicks the Add button, if the feed
is valid and does not already exist in the Aggregator control, it is added to a private
field, _feeds, of type ObservableCollection<SyndicationFeed>.
When you use an ObservableCollection<SyndicationFeed>,
every time a new feed is added or a feed is removed from the _feeds class field, the ObservableCollection notifies the bound target
controls that something in the list has changed. This makes it easy to
add and remove items without having to rebind the list to the ListBox. The name of each feed is displayed in
the upper ListBox, as shown in Figure 10-7.
When a feed address is entered the code uses the WebClient class to request the contents of the
feed. When the asynchronous call to get the feed contents returns, the
ReadFeed event
handler processes the feed, as shown in Example 10-12. The feed is read into a SyndicationFeed object instance and then a check is made to see whether the feed already exists ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access