我正在制作一个 RSS 阅读器,但在保持 MVVM 和类之间的通信方面遇到了麻烦。
我有一个 ViewModel,有一个我想绑定到视图的项目列表,称之为项目。
还有另一个类,一个 FeedReader,它将为 Items 列表提供项目。至少这是我的目标。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 中,我使用 uri 调用 FeedReader 的 GetFeed(Uri)。我想用提供的项目填写项目列表。问题是提供项目的方法是 UpdateFeed,我没有调用它,我调用了 GetFeed。
var feed = new FeedReader();
feed.GetFeed(uri);
如何在 ViewModel 中获得 UpdateFeed 的结果?提前致谢。