变量丢失值(提要rss xamarin)
我试图让我的变量接收在提要中的搜索中找到的值,但当我检查变量是否为空时,该值正在传递,并且与列表中生成的信息相同 命令列表提要变量丢失值(提要rss xamarin),xamarin,Xamarin,我试图让我的变量接收在提要中的搜索中找到的值,但当我检查变量是否为空时,该值正在传递,并且与列表中生成的信息相同 命令列表提要 private Command loadItemsCommand; public Command LoadItemsCommand { get { return loadItemsCommand ?? (loadItemsCommand = new Command(async () => await ExecuteLoadI
private Command loadItemsCommand;
public Command LoadItemsCommand
{
get { return loadItemsCommand ?? (loadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand())); }
}
private async Task ExecuteLoadItemsCommand()
{
if (IsBusy)
return;
IsBusy = true;
var error = false;
try
{
var responseString = string.Empty;
using (var httpClient = new HttpClient())
{
var feed = "url feed";
responseString = await httpClient.GetStringAsync(feed);
}
var items = await ParseFeed(responseString);
foreach (var item in items)
{
FeedItems.Add(item);
}
}
catch
{
error = true;
}
if (error)
{
var page = new ContentPage();
await page.DisplayAlert("Error", "Unable to load blog.", "OK");
}
IsBusy = false;
}
private async Task<List<FeedItem>> ParseFeed(string rss)
{
return await Task.Run(() =>
{
var xdoc = XDocument.Parse(rss);
var id = 0;
return (from item in xdoc.Descendants("item")
let enclosure = item.Element("enclosure")
where enclosure != null
select new FeedItem
{
Title = (string)item.Element("title"),
Description = (string)item.Element("description"),
Link = (string)item.Element("link"),
PublishDate = DateTime.Parse((string)item.Element("pubDate")).ToUniversalTime().ToString("dd/MM/yyyy HH:mm:ss"),
Category = (string)item.Element("category"),
Mp3Url = (string)enclosure.Attribute("url"),
Image = (string)enclosure.Attribute("url"),
Color_category = "#" + Convert.ToString(int.Parse((string)item.Element("color")), 16).PadLeft(6, '0'),
Id = id++
}).Skip(0).Take(1).ToList();
});
}
加载“FeedItem m=new FeedItem();teste.Text=m.Title;”我什么都不会得到
public feed()
{
InitializeComponent();
BindingContext = new BlogFeedViewModel();
***FeedItem m = new FeedItem();
teste.Text = m.Title;***
listView.ItemTapped += (sender, args) =>
{
if (listView.SelectedItem == null)
return;
this.Navigation.PushAsync(new PodcastPlaybackPage(listView.SelectedItem as FeedItem));
listView.SelectedItem = null;
};
}
您从未调用ParseFeed(),您只是创建了一个空的FeedItem。此命令正在运行,因为在我的列表中出现了该项,我编辑了该命令,请确保我正在调用该命令,并且必须有其他代码执行此操作。但是在你要问的两行中,你只是简单地创建了一个新对象,然后检查它的属性,而没有设置它们的值。甚至在某个地方都有错误,重新执行了这个命令,结果成功了吗
public feed()
{
InitializeComponent();
BindingContext = new BlogFeedViewModel();
***FeedItem m = new FeedItem();
teste.Text = m.Title;***
listView.ItemTapped += (sender, args) =>
{
if (listView.SelectedItem == null)
return;
this.Navigation.PushAsync(new PodcastPlaybackPage(listView.SelectedItem as FeedItem));
listView.SelectedItem = null;
};
}