次のコードを使用していますが、うまく機能します
private void somethingButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
WebClient webClient = new WebClient();
webClient.OpenReadCompleted += webClient_OpenReadCompleted;
webClient.OpenReadAsync(new Uri(myUri));
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if(e.Error != null)
{
messageTextBlock.Text = e.Error.Message;
return;
}
using (Stream s=e.Result)
{
XDocument document = XDocument.Load(s);
var q1 = from c in document.Descendants("result")
select new IndeedResult
{
Title =((string)c.Element("title")).Trim(),
ResultUri = ((string)c.Element("url")).Trim(),
Date = ((string)c.Element("date")).Trim(),
};
myDataGrid.ItemsSource = q1;
}
WebClient
しかし、別のを追加したいと思いwebClient2
ます。これはまったく同じことを行いますが、uri と構造が異なるため、webClient2_OpenReadCompleted
...
問題は、最終的にマージする必要があることです (または、マージする前にいくつかのロジックを実行する必要がありvar q1
ますwebClient_OpenReadCompleted
) 。var q2
webClient2_OpenReadCompleted
var mergedQs = q1.Union(q2).ToList();
myDataGrid.ItemsSource = mergedQs
それを行う簡単な方法はありますか?これらのイベント ハンドラーを使用してそれを行う方法がわかりません。