RSSリーダーを作成していますが、MVVMとクラス間の通信を維持するのに問題があります。
私はViewModelを持っていますが、ビューにバインドしたいアイテムのリストがあり、それをアイテムと呼びます。
別のクラス、アイテムリストのアイテムを提供するFeedReaderがあります。少なくともそれが私の目標です。FeedReaderには次のメソッドがあります。
public void GetFeed(Uri uri)
{
// that's all it does:
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
webClient.DownloadStringAsync(uri);
}
private void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
// the async method finished
// calls UpdateFeed:
UpdateFeed(e.Result);
}
private List<ItemViewModel> UpdateFeed(string feedXML)
{
// parsing the string
// LINQ to XML query does the rest, creates new Model items, put them in a list with .ToList()
//return this result List:
return feedItems;
}
これらの方法は正常に機能します。
ViewModelでは、フィードリーダーのGetFeed(Uri)をURIで呼び出します。提供されたアイテムをアイテムリストに入力したいと思います。問題は、アイテムを提供するメソッドがUpdateFeedであり、それを呼び出さなかったため、GetFeedを呼び出したことです。
var feed = new FeedReader();
feed.GetFeed(uri);
ViewModelでUpdateFeedの結果に到達するにはどうすればよいですか?前もって感謝します。