ATOM 피드를 호출하고 기사 제목과 제출 날짜를 표시하는 간단한 Silverlight 응용 프로그램을 만들려고합니다. RSS 피드와 LINQ를 사용하여이 작업을 수행하기가 매우 쉽지만 ATOM 피드를 사용하여 동일한 작업을 수행하려고합니다. 아래의 코드는 오류는 발생하지 않지만 결과도 나타나지 않습니다! 내가 뭘 놓치고 있니?ATOM 피드가있는 LINQ
ATOM 피드출처 : weblogs.asp.net/scottgu/atom.aspx
소스 튜토리얼 :
소스 코드 www.switchonthecode.com/tutorials/silverlight-datagrid-the-basics :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml.Linq;
namespace BasicDataGridTutorial
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
}
private void btnPopulate_Click(object sender, RoutedEventArgs e)
{
//disable the populate button so it's not clicked twice
//while the data is being requested
this.btnPopulate.IsEnabled = false;
//make a new WebClient object
WebClient client = new WebClient();
//hook the event that's called when the data is received
client.DownloadStringCompleted += client_DownloadStringCompleted;
//tell the WebClient to download the data asynchronously
client.DownloadStringAsync(
//new Uri("http://feeds.feedburner.com/SwitchOnTheCode?format=xml"));
new Uri("http://weblogs.asp.net/scottgu/atom.aspx"));
}
private void client_DownloadStringCompleted(object sender,
DownloadStringCompletedEventArgs e)
{
this.btnPopulate.IsEnabled = true;
if (e.Error == null)
{
XDocument document = XDocument.Parse(e.Result);
XNamespace xmlns = "http://www.w3.org/2005/Atom";
var sotcPosts = from entry in document.Descendants(xmlns+ "entry")
select new SOTCPost
{
Title = (string)entry.Element(xmlns + "feedEntryContent").Value,
Date = (string)entry.Element(xmlns + "lastUpdated").Value
};
this.sotcDataGrid.ItemsSource = sotcPosts;
}
}
private void btnClear_Click(object sender, RoutedEventArgs e)
{
this.sotcDataGrid.ItemsSource = null;
}
}
public class SOTCPost
{
public string Title { get; set; }
public string Date { get; set; }
}
}
감사합니다. :) –