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 ...
Get Data-Driven Services with Silverlight 2 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.